postmanlabs / postman-app-support

Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.
https://www.postman.com
5.79k stars 839 forks source link

Postman hangs with many escaped-double-quotes within a response json string field #12990

Open ed-mak opened 3 weeks ago

ed-mak commented 3 weeks ago

Is there an existing issue for this?

Describe the Issue

Warning that this example curl in postman takes a while to render and will freeze postman in version 11.2.34 request_that_returns_json_response_with_80k_double-quotes_renders_in_35seconds.txt request_that_returns_json_response_with_160k_double-quotes_renders_in_70seconds_or_longer.txt

I've encountered a major parsing performance issue for specific json responses. In particular, it appears like postman is having an issue while rendering a large number of escaped double-quote characters (ie \") contained in json-string fields. Could also possibly affect other characters or character sequence. Started about 2 months ago. Prior to this, postman would be able to render these with-minimal or without issues.

I've attached 2x curl requests that easily invokes the performance issue using 80k and 160k double quotes returned in the response. I am utilizing the helpful httpbin api. I know the count sounds like a lot of characters, but prior to this issue, postman used to easily render these. There is no issue with the response time as the above example requests will respond in <1 second from the server. However when rendering, it takes 35seconds and 70seconds+ respectively on my m1 macbook.

I work with a web application that regularly spits out large json-encoded-text-blobs as a string field in its json response which will naturally contain many of these escaped double-quotes and I suspect that postman's ill rendering is to blame. Frequently, I have to force close postman and is obviously detrimental to my workflow.

Also worth noting that collection runs are unaffected - it's just the rendering of the output when you manually execute a request.

Steps To Reproduce

Import my 2 curl requests into postman. Run the request and you potentially have to wait over a 30 seconds or a minute for it to render.

Screenshots or Videos

No response

Operating System

macOS

Postman Version

11.2.34

Postman Platform

Postman App

User Account Type

Signed In User

Additional Context?

No response

ed-mak commented 2 weeks ago

Still an issue in 11.3.1 after testing

diabhoil commented 2 weeks ago

Having the same issue on Windows 11 with 11.3.1. Everytime I query my API its stuck with formatting the response. The size of the response is < 1MB. So it should not be that hard.

Setting "Response -> Body -> Raw" is working for requests once I have executed them, but I can not set this for new requests.

Formatting should run on a Non-GUI Thread and should not block the whole client app. Additionally make it possible to set default response format to "Raw".

pn-p commented 1 week ago

I have the same problem with an HTTP response with Content-Type: application/json; charset=utf-8 containing a bunch of escaped double quotes.

It would be great if auto-formatting (or rendering?) could have a timeout, like if takes longer than 250ms to just go straight back to plaintext.

parthverma1 commented 3 days ago

Hey @ed-mak, thank you for reporting the issue. I was able to reproduce the issue and will provide an update once a fix has been implemented.