title: Google DialogFlow V2 mysterious error in fulfillment (Google Assistant simulator empty response, request, error tab)
body: <p>I am facing a mysterious error in my application. (Google Assistant + Fulfillment written in NodeJS running on Firebase) My application is about buying gasoline.
  If you want to buy something else like apples it will ask back. 
  If want to buy something else for second time like 7 plum it will redirect you to the default intent. This is how it should work.
  But instead of that (see screenshot)
  <a href="https://i.stack.imgur.com/7hk85.png" rel="noreferrer"><img src="https://i.stack.imgur.com/7hk85.png" alt="flow"></a></p>
  
  <p>The weird thing is the request and response and error tab is empty: (they are never empty for other use cases)
  <a href="https://i.stack.imgur.com/J1WZH.png" rel="noreferrer"><img src="https://i.stack.imgur.com/J1WZH.png" alt="Empty request tab"></a>
  <a href="https://i.stack.imgur.com/BzMA7.png" rel="noreferrer"><img src="https://i.stack.imgur.com/BzMA7.png" alt="Empty response tab"></a>
  <a href="https://i.stack.imgur.com/Ul8ed.png" rel="noreferrer"><img src="https://i.stack.imgur.com/Ul8ed.png" alt="Empty errors tab"></a></p>
  
  <p>Inside firebase functions I see no error log but under GCP log i see one error:</p>
  
  <pre><code>{
   insertId:  "1fmi9ryg1rc8hud"  
   labels: {
    channel:  "preview"   
    querystream:  "GOOGLE_USER"   
    source:  "JSON_RESPONSE_VALIDATION"   
   }
   logName:  "projects/xxxxxx/logs/actions.googleapis.com%2Factions"  
   receiveTimestamp:  "2019-06-11T17:10:13.712416274Z"  
   resource: {
    labels: {
     action_id:  "actions.intent.TEXT"    
     project_id:  "xxxxxx"    
     version_id:  ""    
    }
    type:  "assistant_action"   
   }
   severity:  "ERROR"  
   textPayload:  "MalformedResponse: ErrorId: 113661de-882c-4238-a67a-f324359004a4. Failed to parse Dialogflow response into AppResponse because of invalid platform response. : Could not find a RichResponse or SystemIntent in the platform response for agentId: d7069fa0-5691-4104-848a-56f78e3007c4 and intentId: "  
   timestamp:  "2019-06-11T17:10:13.699816952Z"  
   trace:  "projects/xxxxxxx/traces/ABwppHEdFw2KY23BcC1eOVrIkgUCPC0ae2Sa39ixR7r1mUexFYRhdj2pH-BHNkXky1s9cgLGSw"  
  }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/1M1CO.png" rel="noreferrer"><img src="https://i.stack.imgur.com/1M1CO.png" alt="Full error log"></a></p>
  
  <p>And the reason why it is mysterious is because for example if I say 7 plum first it accepts, and 7 apple second it will go to the default intent. Why? I don't have any idea. If I type random text like 3 sadjhb it will also ask back, and for the second time it will go to the default intent. I know it is not the proper description of the problem but I feel it is not working consistently.</p>
  
  <p>I can copy the fulfillment code of this intent as well but right now I thing it has nothing to do with this.
  I hope one of you faced with this type of behavior before.
  Thank you for reading!</p>
  
  <p>EDIT:</p>
  
  <p>I have one fallback intent which should run every time when no intent found
  <a href="https://i.stack.imgur.com/j6gTo.png" rel="noreferrer"><img src="https://i.stack.imgur.com/j6gTo.png" alt="fallback intent definition"></a>
  And the intent implementation</p>
  
  <pre><code>app.intent('service.addgasoline.getinput', (conv, params) =&gt; {
      if (params.value &amp;&amp; params.unittype) {
        const outmessage = 'So buy gas for - ' + params.value + ' ' +  params.unittype;
        conv.ask(outmessage);
        conv.ask(new Suggestions(['Yes', 'No']));
      } else {
        conv.ask('How much gas you want to buy? For example, you can say 1 L or 1 gallon.');
      }
  
  });
  </code></pre>