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

Hi Tom,

It also works perfectly in Madrid. Thank you!!

David.

Hi Tom,

 

Thanks for this post & I am also facing the same issue in my instance.

While looking for this "glide.http.outbound.max_timeout" property in sys_properties.list. I couldn't find its entry, does that mean I need to create one and set it to false state.

In description SN stated as "glide.http.outbound.max_timeout.enabled" property is it different from "glide.http.outbound.max_timeout"?

 

Could you please help me in sorting out these?

 

Quick reply will be much appreciated!!!

Sorry for the late reply I have been on annual leave.

Yes we had to create the glide.http.outbound.max_timeout.enabled property.

Thanks Tom

Suhas9
ServiceNow Employee
ServiceNow Employee

Can you please look into, https://community.servicenow.com/community?id=community_question&sys_id=b7598933db4e7304f21f5583ca96...  I already tried increasing the time as said by you, but still facing the same issue. Looks like the issue is with something else.