<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic HTTP Utility VBO doesn't return JSON when status code is 400 in Product Forum</title>
    <link>https://community.blueprism.com/t5/Product-Forum/HTTP-Utility-VBO-doesn-t-return-JSON-when-status-code-is-400/m-p/98865#M46536</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;With a postman PUT request, our server returns a JSON response with an error code and error message for a HTTP status code 400 like below:&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"code"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;400&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"message"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"error description here"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"errorDetails"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"causeException"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"causeStack"&lt;/SPAN&gt;&lt;SPAN&gt;: [],&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"internalDetails"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"path"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"path here"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"requestId"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"f5f73b"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;However when I do the same PUT request with Utility - HTTP&amp;nbsp; VBO::HTTP Request, it just returns JSON response as a string containing "Request Failed:The remote server returned an error: (400) Bad Request."&amp;nbsp; and not the JSON itself.. Any idea why it's like that?&lt;/P&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="35970.png"&gt;&lt;img src="https://community.blueprism.com/t5/image/serverpage/image-id/35985i74D3E62A4611C795/image-size/large?v=v2&amp;amp;px=999" role="button" title="35970.png" alt="35970.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;
&lt;/P&gt;&lt;P&gt;Thanks in Advance&lt;/P&gt;
&lt;P&gt;Raghav&lt;/P&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 14 Dec 2023 18:39:39 GMT</pubDate>
    <dc:creator>rpatchip</dc:creator>
    <dc:date>2023-12-14T18:39:39Z</dc:date>
    <item>
      <title>HTTP Utility VBO doesn't return JSON when status code is 400</title>
      <link>https://community.blueprism.com/t5/Product-Forum/HTTP-Utility-VBO-doesn-t-return-JSON-when-status-code-is-400/m-p/98865#M46536</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;With a postman PUT request, our server returns a JSON response with an error code and error message for a HTTP status code 400 like below:&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"code"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;400&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"message"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"error description here"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"errorDetails"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"causeException"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"causeStack"&lt;/SPAN&gt;&lt;SPAN&gt;: [],&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"internalDetails"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"path"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"path here"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"requestId"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"f5f73b"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;However when I do the same PUT request with Utility - HTTP&amp;nbsp; VBO::HTTP Request, it just returns JSON response as a string containing "Request Failed:The remote server returned an error: (400) Bad Request."&amp;nbsp; and not the JSON itself.. Any idea why it's like that?&lt;/P&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="35970.png"&gt;&lt;img src="https://community.blueprism.com/t5/image/serverpage/image-id/35985i74D3E62A4611C795/image-size/large?v=v2&amp;amp;px=999" role="button" title="35970.png" alt="35970.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;
&lt;/P&gt;&lt;P&gt;Thanks in Advance&lt;/P&gt;
&lt;P&gt;Raghav&lt;/P&gt;
&lt;P&gt;
&lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2023 18:39:39 GMT</pubDate>
      <guid>https://community.blueprism.com/t5/Product-Forum/HTTP-Utility-VBO-doesn-t-return-JSON-when-status-code-is-400/m-p/98865#M46536</guid>
      <dc:creator>rpatchip</dc:creator>
      <dc:date>2023-12-14T18:39:39Z</dc:date>
    </item>
    <item>
      <title>Re: HTTP Utility VBO doesn't return JSON when status code is 400</title>
      <link>https://community.blueprism.com/t5/Product-Forum/HTTP-Utility-VBO-doesn-t-return-JSON-when-status-code-is-400/m-p/98866#M46537</link>
      <description>&lt;P&gt;&lt;a href="https://community.blueprism.com/t5/user/viewprofilepage/user-id/9702"&gt;@rpatchip&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Because that's the way the &lt;STRONG&gt;Utility - HTTP&lt;/STRONG&gt; VBO is currently designed. If you open the Code stage associated with the &lt;EM&gt;&lt;STRONG&gt;HTTP Request&lt;/STRONG&gt;&lt;/EM&gt; action and scroll towards the bottom, you'll see where a normal (aka successful) request is handled. You'll also see where &lt;STRONG&gt;WebException&lt;/STRONG&gt; is handled in the Catch block. The 400 error you're receiving is being handled within that Catch block - within the section highlighted in the red block.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="35969.png"&gt;&lt;img src="https://community.blueprism.com/t5/image/serverpage/image-id/35987i17D631210F1C67FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="35969.png" alt="35969.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;There's a couple things that can be done here. To address your immediate needs, you could add something like this within that If block after the line &lt;EM&gt;&lt;STRONG&gt;resultData = e.Message&lt;/STRONG&gt;&lt;/EM&gt;:&lt;/P&gt;
&lt;PRE class="language-vbnet"&gt;&lt;CODE&gt;Dim responseStream As IO.Stream = e.Response.GetResponseStream()
Dim sr As New IO.StreamReader(responseStream)
resultData = resultData + " " + sr.ReadToEnd()
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This should append the raw JSON body to the exception message output. Then it's just a matter of parsing it out in the containing process/object.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt; I haven' tested the code above, but I'm fairly confident it will work for you. &lt;span class="lia-unicode-emoji" title=":beaming_face_with_smiling_eyes:"&gt;😁&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Additionally, you can raise an Idea on the DX Ideas board to have the VBO updated to return any contents within the response body if the response type is a WebException.&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;</description>
      <pubDate>Mon, 18 Dec 2023 15:34:54 GMT</pubDate>
      <guid>https://community.blueprism.com/t5/Product-Forum/HTTP-Utility-VBO-doesn-t-return-JSON-when-status-code-is-400/m-p/98866#M46537</guid>
      <dc:creator>ewilson</dc:creator>
      <dc:date>2023-12-18T15:34:54Z</dc:date>
    </item>
  </channel>
</rss>

