How to increase the timeout for a REST response? (ECCResponseTimeoutException)

David Berdasco
Tera Contributor

Hi!

When launching a REST request, I’m getting ECCResponseTimeoutException (com.glide.ecc.ECCResponseTimeoutException: No response for ECC message request with sysid=957fa87adbb07300e9565d50cf961944 after waiting for 30 seconds in ECC Queue) nevertheless I set a bigger HTTP Timeout.

The endpoint I’m calling returns the response (but after 45 secs) via Postman, so it’s working, but slow…

Here is the code I’m using (testing through Scripts – Background):

var endpoint = "https://myEndpoint";
var authentication_profile = "1010102c5dbd03300e9561010cf961101d";
var MIDServer = "myMIDServer";

var REST_request = new sn_ws.RESTMessageV2();
REST_request.setHttpMethod("get");
REST_request.setHttpTimeout("5000");
REST_request.setEccParameter("skip_sensor", "true");
REST_request.setEndpoint(endpoint);
REST_request.setAuthenticationProfile("basic", authentication_profile);
REST_request.setMIDServer(MIDServer);

try {
    var response = REST_request.execute();
    gs.info(response.getStatusCode());
} catch(error) {
    gs.error(error);
}

Of course, I double-checked that the MID Server is up and running. Just changing the endpoint to a faster one works fine.

Thanks in advance!

1 ACCEPTED SOLUTION

Tom Boyle
Mega Expert

We reported this to Hi and received a response which worked for us:

"Please be informed that we have recently introduced a new property in order to control http connection timeouts for improved performance throughout the instance.

  • Property: glide.http.outbound.max_timeout
  • Description: Specifies the number of seconds that RESTMessageV2 and SOAPMessageV2 APIs wait for a response from a synchronous call. The maximum value is 30 seconds.


RESOLUTION: To define a timeout longer than 30 seconds, set the glide.http.outbound.max_timeout.enabledsystem property to false and use the waitForResponse() method to set the timeout (after setting that property to false you should be able to set different timeouts with waitForResponse()). For examples, see Asynchronous RESTMessageV2 example: https://docs.servicenow.com/bundle/madrid-application-development/page/app-store/dev_portal/API_refe...

and Asynchronous SOAPMessageV2 example:
https://docs.servicenow.com/bundle/madrid-application-development/page/app-store/dev_portal/API_refe...

If glide.http.outbound.max_timeout.enabled is set to true and a value is passed in the waitForResponse() method, the system uses the smallest value from either the waitForResponse() method or the glide.http.outbound.max_timeout system property."

View solution in original post

15 REPLIES 15

My apologies for responding to an old post. But if we turn the timeout off, do we have to in turn go and define the waitForResponse() on our business rules, etc. One group we've integrated with is having trouble with not getting a response to us within 30s and it is timing out. They've asked to extend the timeout, but it looks like that can't be done. Thoughts?