Risk incidents, containment, and learning
Respond to active harm and preserve an accurate account of events.
The loss graph bends upward at 2 a.m. The first job is to stop the bleeding without breaking the rest of the payment system. The second is to understand what happened well enough that the next team does not repeat it.
Declare the incident from impact
An incident can involve active fraud, a broken sanctions feed, duplicate payouts, missing notices, data exposure, or a liquidity shortfall. Define severity from customer harm, financial exposure, legal duties, service impact, and uncertainty.
Use a clear declaration process with an incident lead and decision roles. Preserve the initial evidence and assumptions. Early estimates will change; version them rather than treating the first number as permanent truth. A small confirmed issue with large unknown exposure may need more attention than its current loss count suggests.
An incident can exist before the service is fully unavailable. If a release approves payments without a required check, every endpoint may respond quickly while the platform creates new exposure. Declare incidents from customer, financial, security, and control impact as well as infrastructure health. A shared severity definition helps teams recognize this class of failure early.
The initial scope will often be uncertain. Record the known start time, suspected affected population, systems involved, and the evidence supporting each statement. Update these facts as the investigation improves. A confident estimate without a reproducible population query can send recovery teams toward the wrong accounts and make later reconciliation harder.
- DetectIdentify the abnormal outcome
- AssessEstimate harm exposure and uncertainty
- DeclareAssign command and response roles
- Confirmed loss
- Evidence supports the amount
- Potential exposure
- Additional impact remains possible
Incident scope
Illustrative data; not a real customer record or a prescribed policy.
- Confirmed duplicates4
Known affected payments
- Unreviewed batch2000
Potential broader scope
- Severityuncertainty included
Not based only on four cases
Known loss may be only part of the event
Include uncertainty in severity and scope. Known loss may be only part of the event.
- Failure mode 1avoid
- Wait for perfect facts before organizing. Harm can continue.
- Failure mode 2avoid
- Use the first estimate forever. Evidence develops.
- Failure mode 3avoid
- Assign several competing incident leads. Decision authority becomes unclear.
Contain the harmful capability
Containment should target the path causing harm: pause a payout route, restrict a compromised credential, stop a defective rule, or hold work under the approved contingency. Avoid a broad shutdown when a narrower action can safely stop the problem.
Record the authority, time, scope, and expected effect of each action. Confirm that it worked using direct evidence. A kill switch that changes a dashboard flag but leaves workers active is not containment. Consider customer consequences and legal constraints while preserving the records needed for investigation.
- TargetIdentify the harmful path
- ActApply an authorized bounded restriction
- ConfirmObserve that the harmful effect stopped
- Command issued
- Containment was requested
- Containment effective
- Evidence shows the path is stopped
Payout containment
Illustrative data; not a real customer record or a prescribed policy.
- Switchdisabled
Control command
- Worker releasesstill occurring
Action ineffective
- Responsestop actual release path
Verify the downstream effect
A control flag may not stop running workers
Verify containment at the effect boundary. A control flag may not stop running workers.
- Failure mode 1avoid
- Assume the command succeeded. The action needs evidence.
- Failure mode 2avoid
- Delete records to stop processing. That destroys the investigation trail.
- Failure mode 3avoid
- Ignore customer obligations during a pause. They still require handling.
Maintain a decision and evidence log
An incident log records observations, decisions, owners, timestamps, and evidence references. Keep facts separate from hypotheses. Use a common time basis and preserve source timestamps when they differ.
Record why a decision was reasonable with the information available then. This reduces hindsight distortion during review. Limit sensitive content to the appropriate access group and use references in broad coordination channels. The log should support handoff when responders change shifts and should make unresolved questions visible.
- ObserveRecord facts with sources
- DecideCapture rationale authority and time
- HandoffShow unresolved work and next owners
- Hypothesis
- Possible explanation under investigation
- Established fact
- Supported observation or confirmed result
Incident log
Illustrative data; not a real customer record or a prescribed policy.
- 02:10duplicate releases observed
Fact
- 02:15retry defect suspected
Hypothesis
- 02:20route paused and verified
Action with evidence
The record must show what was known when
Version facts hypotheses and decisions. The record must show what was known when.
- Failure mode 1avoid
- Rewrite early notes as if the cause was obvious. That loses the real decision context.
- Failure mode 2avoid
- Paste secrets into broad channels. Coordination does not remove access limits.
- Failure mode 3avoid
- Handoff without open questions. The next team can miss critical work.
Recover with a reconciled population
Recovery should restore safe service and resolve the affected obligations. Identify all potentially affected records with a reproducible query, confirm impact, and assign the appropriate remediation. Keep uncertain records in scope until resolved.
Use idempotent correction jobs and independent reconciliation. A refund or reversal batch can itself create duplicate value if retried poorly. Resume service under defined guardrails and monitor the original failure mode. The incident is not complete merely because the graph returns to normal while historical customers remain affected.
Recovery is complete when the affected population has a defined and verified outcome. Some payments may need replay, some may already have succeeded, and some may require manual resolution or customer communication. Use stable identifiers to assign each item to a resolution state and verify totals against independent records. Do not replay an entire time range solely because the service was degraded during it. An outage window is a useful investigation boundary, but it does not prove that every action within the window failed.
- PopulationIdentify and confirm affected records
- RemediateExecute controlled corrections
- ResumeVerify safe service and remaining obligations
- Service recovery
- New activity works again
- Impact resolution
- Affected historical records have supported outcomes
Recovery population
Illustrative data; not a real customer record or a prescribed policy.
- Confirmed affected180
Reviewed scope
- Corrected176
Completed actions
- Unresolved4
Incident work remains
Restored service does not resolve past impact
Reconcile remediation against the affected population. Restored service does not resolve past impact.
- Failure mode 1avoid
- Run unkeyed correction scripts repeatedly. They can create new duplicates.
- Failure mode 2avoid
- Drop uncertain records from the count. The scope becomes falsely small.
- Failure mode 3avoid
- Close at the first normal chart. Historical obligations may remain.
Learn from the system that allowed the event
A useful incident review explains the trigger, contributing conditions, detection, response, and customer impact. Avoid stopping at a person made a mistake. Examine why the system permitted the error and why existing controls did not catch it sooner.
Choose corrective actions that change the failure path and can be verified. Assign owners, dates, and acceptance evidence. Track completion and retest important controls. A long list of reminders can be less useful than one enforced invariant. The review should improve the system’s ability to prevent, detect, or contain the next similar event.
- ExplainTrace trigger and contributing conditions
- RepairChoose enforceable changes
- VerifyRetest the relevant failure path
- Individual action
- What a person did
- System condition
- Why that action could cause or escape harm
Post-incident action
Illustrative data; not a real customer record or a prescribed policy.
- Causeduplicate posting allowed
Missing invariant
- Fixunique operation constraint
Enforced boundary
- Evidenceretry fault test passes
Verifiable acceptance
Lessons should change behavior in the system
Choose repairs with observable acceptance evidence. Lessons should change behavior in the system.
- Failure mode 1avoid
- End at human error. Contributing design conditions remain.
- Failure mode 2avoid
- Assign reminders without owners. The work may not happen.
- Failure mode 3avoid
- Close after code review alone. The failure path still needs verification.
Chapter connections
This chapter builds on Operational resilience and failure design. Continue with A complete risk system: the Lantern case to follow the next part of the system. Use the glossary for terminology and risk mathematics for formulas and worked calculations.