APIs & integrations

An API integration has stopped: investigate and recover without duplicate work

Control an integration incident through business impact, preserved evidence, targeted diagnosis and a verified backlog recovery process.

On this page

An integration can stop because access expires, a supplier changes its behaviour, input becomes invalid or a service is temporarily unavailable. The visible symptom is often the same: information is missing from the destination. The appropriate responses are different. Immediately restarting every task can make matters worse when some operations completed but their confirmations were lost along the way.

This guide provides an investigation route for the maintainer and operational owner. It is not a universal emergency command or a guarantee that the source retains all necessary history. The examples are fictional. In an actual incident, use agreed permissions and record which outcomes are established and which remain uncertain before authorising consequential recovery work.

Describe impact in business terms

Identify which work cannot proceed. Are customer updates missing, draft documents absent or planning information outdated? Record the suspected starting point and the last demonstrably correct result. A server error at ten o’clock does not prove every transaction after ten was lost. Find specific source references and destination states to bound the investigation instead of treating a broad time range as established fact.

Have the operational owner approve a temporary working method. If staff enter records manually, retain evidence of what was performed outside the integration. Otherwise resumed automation can repeat those actions. Decide whether to pause all processing or only a consequential step. A complete stop may cause unnecessary disruption, while continuing without understanding the effects can also be inappropriate. Document the reason and responsible decision-maker.

Preserve the current evidence

Collect relevant error categories, timestamps, source references, destination identifiers and the configuration version in use. Where necessary, preserve a controlled copy of state before changing configuration or data. Do not immediately remove failed executions to produce a clean dashboard. The sequence of attempts may be the best evidence of which operation already affected the destination and where uncertainty began.

Keep credentials and unnecessary personal information out of broad incident channels. An operator often needs only a safe reference and error category. Identify evidence that is missing because logging is limited or a supplier exposes no history. This prevents false certainty based on a fragment from one application. A preserved factual record supports targeted recovery and later improvements without requiring unrestricted copies of production payloads or secrets.

Separate access, data and availability problems

Expired or revoked authorisation needs different handling from an unreachable service. Inspect the actual response and current supplier documentation. Do not automatically classify every rejection as temporary. Repeated authentication or resubmission can create unnecessary load and make diagnosis harder. Restore access through the agreed administrative process and limit permissions to those genuinely required for the integration’s task.

For invalid content, investigate the smallest concrete example. Has a mandatory field changed, does a destination reference no longer exist or does the payload violate the current contract? Correct the cause at the appropriate source. Adding a broad exception so invalid records continue regardless can hide a technical error while creating business-data problems. Explain which previous assumption changed and update the mapping or validation accordingly.

CategoryInitial investigationAvoid
AccessPermissions and current rejectionUnlimited authentication attempts
ContentSpecific record and field contractDisabling validation broadly
Temporary outageSupplier state and bounded recoveryRestarting the entire workload at once
Uncertain outcomeFind any earlier destination actionCreating again without investigation

Recovery may involve replay. Prepare the duplicate-operation controls first: Prevent duplicate orders and invoices when API messages repeat.

Evaluate temporary failures deliberately

A temporary connection problem may disappear after a suitable delay. Retrying needs limits and should account for a service that may still be overloaded. Microsoft’s Retry pattern discusses stopping, immediate repetition and delayed repetition. Appropriate configuration depends on the actual operation and supplier requirements rather than a universal retry count applied to every error and every endpoint.

Consider the business consequence of repeating the request. Reading a record differs from creating a document. Reuse the existing recognition of previous attempts and investigate uncertain outcomes. Waiting longer cannot supply a missing customer reference. Classify failures so an employee can understand when waiting may help and when a correction or explicit decision is required before the item can safely move forward.

Microsoft Azure Architecture: Retry pattern ↗

Investigate uncertain outcomes separately

A lost response can leave the source showing failure while the destination already holds the result. Gather the source reference, any external key and the period in which the action was attempted. Use the destination’s supported facilities to find the intended operation. Check identity and contents; a similar amount or the same customer name alone is weak evidence of a reliable match.

If no dependable conclusion is possible, keep the item uncertain until an authorised owner decides. Record that decision, the remaining risk and the checks performed. Do not bypass an earlier attempt by inventing a new random operation key. Recovery must retain the same duplicate protection as normal processing and distinguish a genuine new instruction from repetition of work whose outcome has not yet been established.

Trial recovery on a limited selection

Choose a representative failed item that can be investigated safely. Correct the established cause and run the agreed trial. Inspect the business result in both applications before releasing a large backlog. Then test a more difficult case, such as a revised order or a partly completed route. One simple success does not prove every historic failure had the same cause or can use the same recovery action.

Keep failure categories separate. Work blocked by expired access may resume after authorisation is repaired, while invalid product codes need substantive correction first. Record the groups intentionally left waiting. This staged approach avoids using the resolution of one technical issue as permission to send every old record through the same chain again, regardless of its previous effects, missing information or outstanding business decision.

Restore the backlog in a controlled order

Choose an order that respects dependencies. An order may require a confirmed customer mapping before it can be handled safely. During recovery monitor both progress and new incoming work, not just error counts. Respect the supplier’s current limits and destination capacity. Releasing everything simultaneously can produce another incident even when the original problem has been corrected and ordinary traffic would now succeed.

Show which items are confirmed, skipped, corrected or still uncertain. Reconcile source and destination references for the agreed period. Count business operations rather than successful execution attempts, because one operation can have several technical tries. Close the backlog only when the operational owner can assess the relevant final state and temporary manual actions are demonstrably not being performed again by resumed automation.

Improve the controls after the incident

Record the cause, the impact actually demonstrated and remaining uncertainty. Distinguish an external supplier outage from an internal design weakness that made restoration harder. The trigger may be external while the integration lacks a usable destination-reference history. Those findings need different owners and improvements. A blame-oriented summary obscures practical tasks that could make the next interruption easier to understand.

Select a small number of concrete actions, such as an expired-access test, a useful recovery queue or a missing-order reconciliation. Assign an owner and observable outcome to each. Reconstruct the incident as a test for later releases without copying credentials or unnecessary personal information. The objective is earlier detection and safer recovery, rather than an unsupportable promise that no connected service or business process will ever fail again.

Turn the explanation into a project decision

Record your assumptions, unknowns and acceptance checks in the matching tool. Use the service guides to discuss delivery and scope.

Open the preparation tool ↗

Questions about this topic

Should we switch the integration off immediately?

Consider the possible effects with the operational owner. Determine whether new processing can amplify the problem and which temporary procedure is required. Sometimes one consequential action should pause while safe parts continue.

Why does restarting not always help?

Restarting cannot repair invalid information or missing authority. The destination may also have saved work already. Identify the error category and the business operation’s state before submitting it again or clearing previous evidence.

When is the incident actually resolved?

When the cause is addressed, new processing demonstrably works and the relevant backlog has been reconciled. A green server indicator does not establish that every missing order or change was restored correctly.

Who should review an uncertain invoice action?

Assign an authorised business owner supported by technical investigation of source and destination records. Operators can gather facts, but substantive financial corrections need the appropriate responsibility and review rather than an automatic technical guess.

Continue with a related question

Sources and technical background

Discuss your project with Ricardo ↗