Troubleshooting tips on Account configurations
Find answers to some of the most common questions on Account configurations.
Connection Reset
I see connection reset errors. What is the root cause of these errors? The root cause of connection reset errors is stale connections. It is recommended to set the Keep Alive Interval to two minutes.
Time Out Exceptions
I see a transaction has failed with the following exception: ERROR_INVOKING_CLOUD_SERVICE: An IO or timeout exception is encountered for invoke “xxx” method. What is the root cause and the resolution? The root cause may be linked to stale connections or a low response timeout value. To handle stale connections, set the Keep Alive Interval to two minutes. To handle receipt of large payloads or a slow network impacting the responsiveness of the back end, increase the Response Timeout value, for example, to five minutes or higher.
Session Expired or Invalid Session ID
I am using the Salesforce Credential based account configuration and I see the following invalid_session_id errors while executing operations. How can I prevent an invalid session time out? INVALID_SESSION_ID: Invalid Session ID found "message": "Session expired or invalid", "errorCode": INVALID_SESSION_ID"
Salesforce operation execution fails sometime with Invalid Session ID found error
Invalid Session ID found in SessionHeader: Illegal Session. Session not found. This error usually occurs after a session expires or a user logs out. Decoder: DataInDbSessionKeyDecoder
These errors are observed if the client (Integration Cloud Account) and the server (for example, Salesforce) session time out values are not in sync. Based on the Salesforce back end session timeout value, set a Session Timeout (min) value in the Integration Cloud Account configuration screen. This value should be less than the Salesforce back end session timeout value so that the token is refreshed before Salesforce invalidates it. For corner case scenarios, specify a value that is one minute less than the Salesforce back end session timeout value. For example, if on the server side (Salesforce), you have configured the session timeout value to 15 minutes, then on the client side (Integration Cloud Account), ensure that the session time out value is less than the server (Salesforce) session time out value, that is 14 minutes.
Disabled Connection Issue
Sometimes integrations start failing and I see the following cloud connection disabled errors. Why do they appear and what is the resolution? DISABLED_CLOUD_CONNECTION: Connection xxx is disabled
INVALID_LOGIN: Invalid username, user not active
Connection disabled errors may appear due to the following reasons:
Salesforce back end account password has been changed or has expired.
In this case, check if the password is still valid.
Salesforce login limit is breached.
If 3600 login calls are sent to Salesforce in 15 minutes, then depending on the configured Lockout effective period in Salesforce, the integration fails, and the DISABLED_CLOUD_CONNECTION: Connection xxx message appears. For example, If 3600 login calls are sent to Salesforce in 15 mins, and you have set the Lockout effective period to 60 minutes, then from the 16th minute till the 60th minute, all integrations will fail.
Usually credentials based connections get disabled once the Salesforce login limit is breached. You may have reached the login limit quota for the back end.
How to minimize your login calls to Salesforce
Salesforce allows 3600 logins per hour. In Integration Cloud, select Enable Connection Pooling to enable the connection pooling option. Also adjust the Minimum Pool Size, Maximum Pool Size, and the Expire Timeout (msec) values. Expire Timeout will ensure that a connection in the Integration Cloud Account pool is kept alive for the configured time interval after the Account is created. In the absence of the Expire Timeout configuration, the connection will be invalidated immediately to maintain the Minimum Pool Size as one. The intention is to limit the number of login requests, so the recommendation is to keep the Expire Timeout value equal to the Session Timeout value, because the connection is anyways invalidated after Session Timeout. For example, if the session timeout in Salesforce back end is configured to two hours, specify the Expire Timeout and the Session Timeout values in the Integration Cloud Account Configuration screen to be slightly less than two hours.
Account Configuration Fields | Value |
Session Timeout | Slightly less than the Salesforce back end session timeout settings. For example, 119 minutes, if the Salesforce back end session timeout value is 120 minutes. |
Keep Alive Interval | Two minutes. |
Response Timeout | Five minutes. |
Do the following if your Salesforce login limit is breached
If your Salesforce logins have exceeded 3600 logins/hour, then your Salesforce account gets disabled. This is usually observed in the case of credentials-based authentication connection with the back end. In this scenario, login to your Salesforce back end account, go to Setup > Manage User > Users, select the User profile, go to the Password Policies section, and check the time configured for the Lockout effective period field. The Lockout effective period is the time for which the Salesforce back end account will be locked once the login limit is breached. You can either wait till the time specified in the Lockout effective period field has passed or you can configure a different lockout value as per your need.
Why do I see the UNABLE_TO_RETRIEVE_CONNECTION_FROM_POOL error while enabling Accounts or executing Operations? Increase the Maximum Pool Size or the Block Timeout values. Regarding the maximum pool size, when the connection pool has reached its maximum number of connections, the connector will reuse any inactive connections in the pool, or if all connections are active, it will wait for a connection to become available. Increasing the Block Timeout value increases the time Integration Cloud will wait to obtain a connection with the SaaS provider before the connection times out and returns an error. For example, if you have a pool with Maximum Pool Size of 20 and if you receive 30 simultaneous requests for a connection, 10 requests will be waiting for a connection from the pool. Now if you set the Block Timeout to 5000 msec, the 10 requests will wait for a connection for 5000 msec or 5 seconds before they time out and return an error. If the services using the connections require 10 seconds to complete and return connections to the pool, the pending requests will fail and return an error message stating that no connections are available.
I see integrations failing with the DISABLED_CLOUD_CONNECTION: Connection xxx error but the Account shows enabled in the User Interface. Do the following to resolve this issue:
1. Go to the stage where the Account is found disabled.
2. On the Projects page, select the Default project.
3. Edit any asset in the same stage. For example, click the Reference Data tab, select a reference data, update the reference data description, and then save the reference data.
4. Wait for a minute. This will trigger an update and will resolve the disabled Account issue. The integration will now run successfully.