title: Unknown: None Exception iterating requests! When trying to detect intent in Dialogflow
body: <p>I am trying to use Dialogflow to take in microphone input to get an intent from the user, however whenever I try and run it, I am not getting a prompt for audio and I get an error stating 'None Exception iterating requests!'.
  Here's the full error I get</p>
  <pre><code>---------------------------------------------------------------------------
  _MultiThreadedRendezvous                  Traceback (most recent call last)
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\google\api_core\grpc_helpers.py in error_remapped_callable(*args, **kwargs)
      149             prefetch_first = getattr(callable_, &quot;_prefetch_first_result_&quot;, True)
  --&gt; 150             return _StreamingResponseIterator(result, prefetch_first_result=prefetch_first)
      151         except grpc.RpcError as exc:
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\google\api_core\grpc_helpers.py in __init__(self, wrapped, prefetch_first_result)
       72             if prefetch_first_result:
  ---&gt; 73                 self._stored_first_result = six.next(self._wrapped)
       74         except TypeError:
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\grpc\_channel.py in __next__(self)
      415     def __next__(self):
  --&gt; 416         return self._next()
      417 
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\grpc\_channel.py in _next(self)
      705                 elif self._state.code is not None:
  --&gt; 706                     raise self
      707 
  
  _MultiThreadedRendezvous: &lt;_MultiThreadedRendezvous of RPC that terminated with:
      status = StatusCode.UNKNOWN
      details = &quot;Exception iterating requests!&quot;
      debug_error_string = &quot;None&quot;
  &gt;
  
  The above exception was the direct cause of the following exception:
  
  Unknown                                   Traceback (most recent call last)
  &lt;ipython-input-43-08553cb9dc4e&gt; in &lt;module&gt;
  ----&gt; 1 prods = getResponseStream()
  
  &lt;ipython-input-42-54a2ce08e87f&gt; in getResponseStream()
        5     sess_id = '123456789'
        6     lang = 'en-US'
  ----&gt; 7     response = detect_intent_stream(p_id,sess_id,lang)
        8 
        9     related_prods = []
  
  &lt;ipython-input-41-84442e760865&gt; in detect_intent_stream(project_id, session_id, language_code)
       41 
       42     requests = request_generator(audio_config)
  ---&gt; 43     responses = session_client.streaming_detect_intent(requests)
       44 
       45     print('=' * 20)
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\dialogflow_v2\gapic\sessions_client.py in streaming_detect_intent(self, requests, retry, timeout, metadata)
      402             )
      403 
  --&gt; 404         return self._inner_api_calls[&quot;streaming_detect_intent&quot;](
      405             requests, retry=retry, timeout=timeout, metadata=metadata
      406         )
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\google\api_core\gapic_v1\method.py in __call__(self, *args, **kwargs)
      143             kwargs[&quot;metadata&quot;] = metadata
      144 
  --&gt; 145         return wrapped_func(*args, **kwargs)
      146 
      147 
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\google\api_core\retry.py in retry_wrapped_func(*args, **kwargs)
      279                 self._initial, self._maximum, multiplier=self._multiplier
      280             )
  --&gt; 281             return retry_target(
      282                 target,
      283                 self._predicate,
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\google\api_core\retry.py in retry_target(target, predicate, sleep_generator, deadline, on_error)
      182     for sleep in sleep_generator:
      183         try:
  --&gt; 184             return target()
      185 
      186         # pylint: disable=broad-except
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\google\api_core\timeout.py in func_with_timeout(*args, **kwargs)
      212             &quot;&quot;&quot;Wrapped function that adds timeout.&quot;&quot;&quot;
      213             kwargs[&quot;timeout&quot;] = next(timeouts)
  --&gt; 214             return func(*args, **kwargs)
      215 
      216         return func_with_timeout
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\google\api_core\grpc_helpers.py in error_remapped_callable(*args, **kwargs)
      150             return _StreamingResponseIterator(result, prefetch_first_result=prefetch_first)
      151         except grpc.RpcError as exc:
  --&gt; 152             six.raise_from(exceptions.from_grpc_error(exc), exc)
      153 
      154     return error_remapped_callable
  
  c:\users\abala\appdata\local\programs\python\python38\lib\site-packages\six.py in raise_from(value, from_value)
  
  Unknown: None Exception iterating requests!
  
  </code></pre>
  <p>Here's the function I use to call the dialogflow api</p>
  <pre><code>def detect_intent_stream(project_id, session_id,
                           language_code):
      &quot;&quot;&quot;Returns the result of detect intent with streaming audio as input.
  
      Using the same `session_id` between requests allows continuation
      of the conversation.&quot;&quot;&quot;
      import dialogflow_v2 as dialogflow
      session_client = dialogflow.SessionsClient()
  
      # Note: hard coding audio_encoding and sample_rate_hertz for simplicity.
      audio_encoding = dialogflow.enums.AudioEncoding.AUDIO_ENCODING_LINEAR_16
      sample_rate_hertz = 16000
  
      session_path = session_client.session_path(project_id, session_id)
      print('Session path: {}\n'.format(session_path))
  
      def request_generator(audio_config):
          query_input = dialogflow.types.QueryInput(audio_config=audio_config)
  
          # The first request contains the configuration.
          yield dialogflow.types.StreamingDetectIntentRequest(
              session=session_path, query_input=query_input)
  
          # Here we are reading small chunks of audio data from a local
          # audio file.  In practice these chunks should come from
          # an audio input device.
          r = sr.Recognizer()
          speech = sr.Microphone(device_index=1)
          with speech as source:
              while True:
                  chunk = audio_file.read(4096)
                  if not chunk:
                      break
                  # The later requests contains audio data.
                  yield dialogflow.types.StreamingDetectIntentRequest(
                      input_audio=chunk)
  
      audio_config = dialogflow.types.InputAudioConfig(
          audio_encoding=audio_encoding, language_code=language_code,
          sample_rate_hertz=sample_rate_hertz)
  
      requests = request_generator(audio_config)
      responses = session_client.streaming_detect_intent(requests)
  
      print('=' * 20)
      for response in responses:
          print('Intermediate transcript: &quot;{}&quot;.'.format(
                  response.recognition_result.transcript))
  
      # Note: The result from the last response is the final transcript along
      # with the detected content.
      query_result = response.query_result
  
      print('=' * 20)
      print('Query text: {}'.format(query_result.query_text))
      print('Detected intent: {} (confidence: {})\n'.format(
          query_result.intent.display_name,
          query_result.intent_detection_confidence))
      print('Fulfillment text: {}\n'.format(
          query_result.fulfillment_text))
  </code></pre>