# Recovery and escalation for failed integrations

*Integration Architect Study Guide · Maintain Integration · Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/integration-architect/maintain-integration/recovery-and-escalation-for-failed-integrations*

Recovery procedures per channel: bounded trigger retries and Resume vs Resume from Tip, Pub/Sub resubscribe and republish by correlationKey, failed outbound message Retry, Bulk API 2.0 failed results, CDC gap and overflow events, ETL error tables, Publish Immediately error logs and caller-side Request and Reply errors.

- Certification: Salesforce Integration Architect
- Exam section: Maintain Integration
- Study guide: https://www.certifyforce.com/study-guide/integration-architect

**Official exam objective:**

> Given a use case, identify the appropriate error handling, escalation and recovery procedures for a failed integration.

## What the exam expects

- Bound platform event trigger retries, escalate before the error state, and choose Resume or Resume from Tip for a suspended subscription.
- Recover a Pub/Sub API subscriber or publisher after an error without skipping, duplicating or flooding.
- Recover failed outbound messages and failed Bulk API 2.0 records with the documented manual steps.
- Handle Change Data Capture gap and overflow events in a replication subscriber.
- Apply the integration patterns' error handling: ETL control and error tables, error logs that survive rollback, and caller-side handling in Request and Reply.

Key terms: **error state** (a trigger subscription that stopped after its last retry), **tip** (the newest position in the event stream), **Replay ID** (an event's position in the event bus), **correlationKey** (the Pub/Sub field that matches a publish result to its event), **gap event** (a header-only notice that a change event couldn't be generated), **control table** (ETL table storing run state for restart).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Trigger retry ceiling | Initial run plus 9 retries, then error state | [Retry Event Triggers with EventBus.RetryableException](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_subscribe_apex_refire.htm) |
| Error-state events | Events sent while in error aren't resent to the trigger | [Retry Event Triggers with EventBus.RetryableException](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_subscribe_apex_refire.htm) |
| Resume | Earliest event still in the bus; Resume from Tip = new events | [View and Manage an Event's Subscribers](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_get_subscribers_apex.htm) |
| Modifying a suspended trigger | Resumes from the tip | [View and Manage an Event's Subscribers](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_get_subscribers_apex.htm) |
| Pub/Sub transient error | Backoff, limited attempts, CUSTOM + stored Replay ID | [Retry Long-Lived RPC Calls After an Error Occurs](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/retry-rpc-calls.html) |
| Publish result matching | `correlationKey` = `ProducerEvent.id` | [Retry Long-Lived RPC Calls After an Error Occurs](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/retry-rpc-calls.html) |
| Outbound message retries | Up to 24 hours, then failed queue; Retry gives 24 more hours | [Track the Delivery Status of an Outbound Message](https://help.salesforce.com/s/articleView?id=platform.workflow_tracking_outbound_message_delivery_status.htm&type=5) |
| Bulk API 2.0 failed rows | `failedResults` CSV with `sf__Error`, `sf__Id`, original fields | [Get Job Failed Record Results](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/get_job_failed_results.htm) |
| Overflow threshold | Changes beyond 100,000 in one transaction, one event per entity | [Transaction-Based Replication Steps](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_replication_steps.htm) |
| ETL read failure | Log, retry, terminate, notify; restart the ETL process | [Batch Data Synchronization](https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_batch_data_sync.htm) |

## Check yourself

- Why keep a trigger's retries below 9?
- When should a Pub/Sub subscriber resubscribe with LATEST?
- Why store an overflow event's Replay ID?
- Who handles errors in Request and Reply?

## Sources

- [Retry Event Triggers with EventBus.RetryableException](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_subscribe_apex_refire.htm)
- [View and Manage an Event's Subscribers](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_get_subscribers_apex.htm)
- [Retry Long-Lived RPC Calls After an Error Occurs](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/retry-rpc-calls.html)
- [Track the Delivery Status of an Outbound Message](https://help.salesforce.com/s/articleView?id=platform.workflow_tracking_outbound_message_delivery_status.htm&type=5)
- [Remote Process Invocation—Fire and Forget](https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_remote_process_invocation_fire_forget.htm)
- [Understanding Notifications (Outbound Messaging)](https://developer.salesforce.com/docs/platform/api/guide/sforce-api-om-outboundmessaging-notifications.html)
- [Remote Process Invocation—Request and Reply](https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_remote_process_invocation_state.htm)
- [Get Job Failed Record Results](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/get_job_failed_results.htm)
- [Get Information About an Ingest Job](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/get_job_info.htm)
- [Batch Data Synchronization](https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_batch_data_sync.htm)
- [Gap Events](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_other_events_gap.htm)
- [Transaction-Based Replication Steps](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_replication_steps.htm)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 10 linked practice questions, and unlimited timed mock exams are included with the Integration Architect pack (USD $19): https://www.certifyforce.com/practice-exams
