Tom Wetjens created CAMEL-14068:
-----------------------------------

             Summary: Retry subscribe to Salesforce event when server returns 
503 Server too busy
                 Key: CAMEL-14068
                 URL: https://issues.apache.org/jira/browse/CAMEL-14068
             Project: Camel
          Issue Type: Improvement
          Components: camel-salesforce
    Affects Versions: 2.23.4
            Reporter: Tom Wetjens


Currently we are using the Salesforce component version 2.23.4.

Every 3 hours the component needs to resubscribe due to expiring token 
(expected behavior). Sometimes however it fails on:

 
{code:java}
org.apache.camel.component.salesforce.api.SalesforceException: Error 
subscribing to /event/CustomerLegalEntity__e: 
403:denied_by_security_policy:subscribe_deniedorg.apache.camel.component.salesforce.api.SalesforceException:
 Error subscribing to /event/CustomerLegalEntity__e: 
403:denied_by_security_policy:subscribe_denied at 
org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper$7.onMessage(SubscriptionHelper.java:406){code}
 

It turns out (not in the logging) that the server returns additional 
information:

 
{code:java}
{ext={sfdc={failureReason=503::Server is too busy. Please try your request 
again later.}}, ...}{code}
 

As described in the Salesforce documentation here: 
[https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/streaming_handling_errors.htm]

the 503 Server too busy is a documented error that should/can be retried.

It would greatly add to the resilience of our system if the Salesforce 
component would automatically retry a subscribe if failed due to a temporary 
error. The same backoff mechanism as for the reconnect could apply.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to