ESOCKETTIMEDOUT error in Monitor

I am using postman pro to create a monitor. It is a collection of 25 requests. One of the API throwing ESOCKETTIMEDOUT error. And the same API working fine in the other place when I reused it. Also, it is publicly accessible. Please suggest me something about this.

Hi @Dilleswar.tudip! Welcome to our Postman Community :wave:

Did you happen to set a request timeout when creating the monitor? It’s under “Additional Preferences”. If you have one, I’d disable or increase the time specified to see if that makes a difference. Let us know!

1 Like

Thanks for your quick response. I had already tried with this. As per our project requirements, the response time of the request depends on the parameters passed and the parameters are dynamic. If we set request time out it is always failing the test cases.

Hey @Dilleswar.tudip! Just to clarify, you’ve tried the monitor without that box checked and it works sometimes but not others? Or is the collection run working in the Postman Runner (in app) but has never worked when using Postman Monitors, no matter the configuration?

The collection runner in the postman works fine. But in the monitor some times i am facing the ESOCKETTIMEDOUT sometimes. I am trying to track that, but i am unable to find exactly whats happening with the monitor run.

@Dilleswar.tudip Can you clarify if one of your API endpoints is returning the error? Do you face the same error when running the collection on the Postman app?

Another potential reason might be firewalls. If your API is behind a firewall that blocks requests from external hosts, you can get this error. So, if you are on a network that the firewall is supposed to trust, your local Postman app might run the collection successfully, but Monitors will fail, since they run on networks external to the firewall. Can you check this and confirm?

Otherwise, monitors have an upper limit of execution time of 5 minutes, beyond which a monitor run is halted. Though I doubt that is the issue you are facing here. Still it will be good to confirm that.

Thanks for the quick response @kaustavdm

I am facing this issue for only two endpoints in the collection and my collection run time is 3 minutes. It is working fine in my postman collection runner. I am facing this error some times while running in the monitor. If it is the firewall issue, this might have to fail all the time. The endpoints have public access as well.

This looks like an issue with the endpoint your requests are hitting and not something specific to Postman. You should check the performance of that endpoint if you have access to those APIs’ metrices.

On the Postman side, I recommend that you add a test to check for response time on those requests. You can set a test at the collection level and that will run for all requests.

Here is a sample test. Adjust the values to your acceptable limit:

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

You can also find these snippets in the right sidebar of the Tests tab’s editor under each request.

I had also added a test case to check the response time. It will take the minimum to seconds to capture the response. In my case, I had added the time to be below 1000 ms. 30% of the cases I am facing this ESOCKETTIMEDOUT issue.

This definitely looks like an issue with the response time of the endpoint, not something Monitors can handle for you directly. Your options are either to increase the request timeout like @claire had originally mentioned. Or improve the performance of the affected endpoint. Or, ideally, both.

@kaustavdm

We have improved the performance of the end-point. Now the response time is nearly 1.5 seconds. Still i am facing the same issue while running on the monitor.