Troubleshooting HTTP Notifications
On the Max platform, the HTTP Notification object implements a persistent message queue for data synchronization requests from Service Board to Salesforce. The following table provides details on the most common error codes and recommended actions.
* 
After you take action to address issues, to manually retry HTTP Notification records, use Mass Update to set the Status field to Pending.
Status
Response Status Code
Response Body
Send As Group
Error Message
Not Ready to Send
No Progress?
Condition
Description
Actions
Failure or Pending
The Processed Count limit specified in the Retry Abort Threshold parameter of the Send HTTP Notifications operation was reached (30 by default).
The following operation parameters of the Send HTTP Notifications operation determine how Processed Count is incremented:
Retry Abort Threshold: Maximum number of notification retries before further attempts are aborted. Values must be between 10 and 360. The default value is 30.
Delay Retry Threshold: Maximum number of notification retries before a delay is added between attempts. Values must be between 0 and 60. The default value is 10.
Retry Delay Duration: Wait time (in seconds) before notifications are retried after the Delay Retry Threshold value is reached. The default value is 10 seconds. Values must be between 10 and 60.
To trigger retries, set the Processed Count field value to 0. If needed, you can adjust Send HTTP Notifications operation parameters.
Failure
400 (Bad Request)
Caused either by an invalid value in a related record's field set in Salesforce, or field mapping issues in transform templates.
For validation issues, update Service Board data validation settings to match those of Salesforce. When the related record is updated, the notification is automatically retried. For transform template issues, fix any problems and set the Status field to Pending to manually retry the notification.
Failure
401 (Unauthorized)
Salesforce authentication issues.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.unauthorized_error.retry.max.attempts (20 by default) at time intervals set in the Java system property io.http.notification.unauthorized_error.retry.wait.seconds (10 by default) is reached.
If the error persists, check the Authentication tab in the active System Settings to ensure valid login credentials are configured in the Salesforce Integration area, then manually retry notifications. For more information, see Maintaining Integration User Credentials.
Failure
403 (Forbidden) or any other HTTP error code
Includes TRANSFER_REQUIRES_READ
The Salesforce user lacks appropriate permissions to make this change.
Review Salesforce access control settings for the user.
Failure
409 (Conflict)
Includes SFDC version =<SFDC_version>; Incoming version = <SB_version>, where the Salesforce version is later than the Service Board version.
Simultaneous updates of related Service Board and Salesforce records caused an integration version mismatch.
This notification is automatically retried based on updates made in Salesforce, which is the source of truth in this case.
Failure
409 (Conflict)
Includes SFDC version =<SFDC_version>; Incoming version = <SB_version>, where the Salesforce version is earlier than the Service Board version.
When changes made in Salesforce but not yet committed to the database are synched to Service Board, event handlers make changes that are sent back to Salesforce before previous changes are committed, triggering an error.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.integration_mismatch_error.retry.max.attempts (20 by default) at time intervals set in the Java system property io.http.notification.integration_mismatch_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
404 (Not Found)
No record with retry ID found in Salesforce.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.not_found_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.not_found_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
423 (Locked)
False
A lock in the Salesforce database prevented this change from being made.
This notification is automatically retried until the maximum number of attempts specified in the Java system propertyio.http.notification.lock_error.retry.max.attempts (29 by default) at time intervals set in the property io.http.notification.lock_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Includes UNABLE_TO_LOCK_ROW or unable to obtain exclusive access
False
Same as with response status field 423 (Locked) and Send As Group field value of False.
Failure
423 (Locked)
True
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.lock_error_for_subgroup.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.lock_error.retry.wait.seconds(10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Includes UNABLE_TO_LOCK_ROW or unable to obtain exclusive access
True
Same as with response status field 423 (Locked) and Send As Group field value of True.
Failure
Includes System.QueryException: Record Currently Unavailable
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.record_currently_unavailable.retry.max.attempts (20 by default) at time intervals set in the property io.http.record_currently_unavailable.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Includes Invalid status code for HTTP response: 423
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.invalid_status_error.retry.max.attempts (20 by default) is reached. Waiting time in seconds before each automatic retry is set in the property io.http.invalid_status_error.retry.wait.seconds (10 by default). If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Includes QUERY_TIMEOUT
The query took too long on the Salesforce side.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.query_timeout_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.query_timeout_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Includes REQUEST_LIMIT_EXCEEDED
A request limit was exceeded on the Salesforce side.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.request_limit_exceeded_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.request_limit_exceeded_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Includes Concurrent requests limit exceeded
A concurrent request limit was exceeded on the Salesforce side.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.concurrent_limit_exceeded_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.concurrent_limit_exceeded_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Includes You have exceeded the maximum number (100) of Apex scheduled jobs
A limit for Apex scheduled jobs was exceeded on the Salesforce side.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.apex.job_limit_exceeded.error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.concurrent_limit_exceeded_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Includes Up_SVMXEventTrigger and first error: ENTITY_IS_DELETED, entity is deleted
An error occurred when users tried to update a previously deleted record in Salesforce.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.different_record_deleted.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.different_record_deleted.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Includes UNKNOWN_EXCEPTION
An exception occurred due to an unknown error in Salesforce.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.unknown_exception.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.unknown_exception.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Does not include "errorCode":"INVALID_FIELD"
The Related HTTP Nofification Request field value is Fetch Callback Event Data Request.
An error occurred while data was being fetched from Salesforce.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.fetch_event_data_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.fetch_event_data_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
400 (Bad Request) or any other HTTP error code
Includes CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, Insert failed, Update failed, or Delete failed
An error occurred during a record update in Salesforce.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.update_error.retry.max.attempts (2 by default) at time intervals set in the property io.http.notification.update_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
400 (Bad Request)
Includes One or more Work Orders in the dependency group does not qualify for booking:
An error occurred during Job Dependency validation in Salesforce.
To resolve this validation error, be sure that the Zip or Service Duration fields are not empty in Work Order records related to Job Dependencies.
Failure
500 (Internal Server Error)
Includes time limit exceeded
The Salesforce CPU usage governor limit was exceeded.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.time_limit_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.time_limit_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
502 (Bad Gateway)
There was a connection error between Service Board and Salesforce.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.bad_gateway_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.bad_gateway_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
503 (Service Unavailable)
The Salesforce server is not available.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.service_unavailable_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.service_unavailable_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
Any status code that is not 2xx (Successful)
Check the HTTP Response Body field for details. After errors are addressed, set the Status field to Pending to manually retry the notification.
Failure
No status code
Includes ResourceAccessException
There was a connection error between Service Board and Salesforce.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.connection_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.connection_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
No status code
Includes Failed to get SFDC token
An error occurred during Salesforce authentication.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.get_token_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.get_token_error.retry.wait.seconds (60 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
No status code
Includes DataAccessResourceFailureException or CannotGetJdbcConnectionException
There was a database error in Service Board.
This notification is automatically retried until the maximum number of attempts specified in the Java system property io.http.notification.connection_error.retry.max.attempts (20 by default) at time intervals set in the property io.http.notification.connection_error.retry.wait.seconds (10 by default) is reached. If the error persists after all automatic retries are complete, set the Status field to Pending to manually retry the notification.
Failure
No status code
The notification was not sent.
Check the Error Message field for details of the cause. After errors are addressed, set the Status field to Pending to manually retry the notification.
Outdated
The notification was ignored during the automatic-retry process for notifications for several reasons. The notification Auto-retrying notifications with response status code 400 (Bad Request) is received in cases where an invalid field value triggers a failure notification, and the value is corrected. The notification with the invalid value is set to Outdated and the notification with the valid value is sent. Another case is when records are deleted on the Salesforce side, which triggers a response with the message ENTITY_IS_DELETED for soft-deleted records, or INVALID_CROSS_REFERENCE_KEYfor hard-deleted records. Additionally, this error can occur in cases where the Job record related to the failed notification has been deleted from Salesforce. Also, notifications are set to Outdated when errors caused by deleted Event attendees trigger the Salesforce response insufficient access rights on object id,
No action is needed, as this notification indicates only that a failure was followed by an automatic retry.
Pending
True
A condition must be met before the notification is sent.
Check the Not Ready to Send Message field for details. The condition setting is automatically checked for updates, and after the condition is met, the notification is sent.
Pending
False
True
Previous notifications for the same related record are not yet sent.
Notifications are sent in the order they are created. A notification is sent only if the previous notification was sent successfully.
Check the oldest unsent notification for the relevant record.
Pending
True
True
A previous notification with the same Group ID value as this notification for the same related record is not yet sent.
All notifications in a group must be ready to send for the group to be ready to send.
Check the oldest unsent notification in the group for the relevant record.
Pending
True
The Maximum HTTP Notifications Processed At Once limit has been reached.
This system setting specifies the number of notifications processed each time the Send HTTP Notifications system job runs.
Modify the system setting, or wait for the notification to be processed.
Pending
True
The Maximum HTTP Notifications Sent Per Hour limit has been reached.
This system setting specifies the number of notifications processed per hour each time the Send HTTP Notifications system job runs. This is useful to avoid reaching Salesforce governance limits for inbound HTTP requests.
Modify the system setting, or wait for the notification to be processed.
Pending
True
Inactive notification record.
Inactive notifications are ignored.
Check the notification to see why it was deactivated and activate if needed.
Pending
True
Disable All Notifications is enabled in the active system settings.
Notifications are disabled.
Investigate why the setting was disabled, and enable notifications if needed.
Pending
True
The Send HTTP Notifications system job is inactive.
Notifications are not sent when the related system job is inactive.
Investigate why the system job was deactivated, and activate it if needed.
Pending
True
In the Send HTTP Notifications system job, the Cron Expression field value was updated to send less frequently.
The cron expression specifies how frequently notifications are sent.
Investigate why the cron expression was updated, and make changes if needed.
Was this helpful?