Short answer
AI incident response is the process for detecting, containing and recovering from failures in AI systems, such as wrong or harmful outputs at scale, data exposed through prompts or retrieval, unapproved agent actions and runaway spend. It follows normal incident practice (severity levels, an incident lead, a timeline, a blameless review) plus AI-specific steps: graded kill switches, preserved traces and configuration, scoping queries and privacy breach assessment.
- Most AI incidents happen while the system is up, so detection must watch outputs, not just uptime.
- Build graded kill switches: drafts only, tools off, feature off.
- Preserve traces, prompts, configuration hashes and retrieval logs before fixing anything.
- In New Zealand, notifiable privacy breaches should ideally reach the Privacy Commissioner within 72 hours.
- Every incident ends with a new regression test, not just a fix.
What counts as an AI incident
An AI incident is any event where an AI system causes, or nearly causes, harm or departs from its intended behaviour. Most happen while the service is up and returning 200s, which is why uptime monitoring alone misses them.
| Type | Example | Typical first signal |
|---|---|---|
| Wrong output at scale | A prompt change makes the assistant quote superseded fees | Customer complaints; review-queue override rate jumps |
| Data exposure | Retrieval returns another customer’s document | Customer report; canary test failure |
| Unapproved action | An agent emails a supplier or edits records it should only draft | Audit log anomaly; system-of-record change with no approval |
| Prompt injection | Text in an inbound email redirects the agent | Tool calls outside the normal pattern |
| Runaway consumption | A loop or abusive user drives spend far over budget | Spend alert; tokens per run spike |
| Provider change or outage | Model behaviour shifts, or the API fails | Error rate; quality metrics move with no deploy |
Generic incident guidance still applies. NIST’s SP 800-61 Rev. 3, published April 2025, frames incident response within the Cybersecurity Framework 2.0. This guide adds what is specific to AI systems.
Severity levels with AI criteria
Define severity before the incident, in terms an on-call engineer can apply at 2am. When unsure between two levels, PagerDuty’s incident response guidance says to treat it as the higher one, and that holds here.
| Severity | AI-specific criteria | Expected response |
|---|---|---|
| SEV1 | Personal or confidential information exposed; harmful irreversible agent action; unsafe advice delivered widely | Incident lead named immediately; containment within minutes; privacy officer and executives informed |
| SEV2 | Wrong outputs reaching customers in one workflow; confirmed injection exploit; spend far above budget | Containment within the hour |
| SEV3 | Quality degraded but caught by human review; provider outage with a working fallback | Fix within days; watch closely |
| SEV4 | Near miss caught by tests or reviewers before any effect | Logged and reviewed weekly |
Prepare before anything breaks
Three things must exist before the first incident: graded kill switches, retained evidence and named owners.
Kill switches let on-call staff reduce what the system can do in seconds, without a deploy. Read the setting at run time, cache it briefly, and fail to the safe mode if it is missing.
import time
class KillSwitch:
"""Modes: 'normal', 'drafts_only' (no external effects), 'tools_off', 'off'."""
def __init__(self, store, ttl_s: float = 10.0):
self.store, self.ttl_s, self.cache = store, ttl_s, {}
def mode(self, feature: str) -> str:
value, fetched_at = self.cache.get(feature, (None, 0.0))
if value is None or time.monotonic() - fetched_at > self.ttl_s:
value = self.store.get(f"ai_mode:{feature}", "drafts_only") # safe default
self.cache[feature] = (value, time.monotonic())
return value
def run_action(action, switch: KillSwitch):
mode = switch.mode(action.feature)
if mode == "off" or (mode == "tools_off" and action.is_tool_call):
raise RuntimeError(f"{action.feature} is disabled by kill switch")
if mode == "drafts_only" and action.has_external_effect:
return action.save_as_draft() # a person approves it later
return action.run()
Evidence means traces that hold the input, retrieved documents, model and prompt versions, configuration hash, tool calls and output for every production call, retained long enough to scope an incident found weeks later. The trace design is in AI audit logs. Owners means an on-call rota, a privacy officer who can be reached, and a record template such as our AI incident log template. The business side, including how staff report AI mistakes, is covered in our lesson on managing AI mistakes and escalation.
The runbook
- Detect and declare. Anyone can declare. Name an incident lead, set a severity and open a timeline.
- Contain. Use the smallest kill switch that stops the harm: drafts only, tools off or feature off. Revoke credentials if an agent or key is compromised.
- Preserve evidence. Snapshot traces, retrieval logs, configuration hashes, prompt and model versions and provider status for the window before changing anything.
- Scope. Query traces to list every affected output, user and record. Do not estimate from a sample.
- Fix the cause. Correct the prompt, filter, permission or data, and add a regression test that fails on the old behaviour.
- Recover in stages. Re-enable through the same gates as a release: offline evaluation, then a small share of traffic, then full.
- Notify. Customers, partners and regulators as required. For personal information, assess serious harm and notify the Privacy Commissioner where required.
- Review. Hold a blameless review within a week and track its actions to completion.
Scoping is where AI incidents differ most. For a retrieval leak, the question is every answer that used a document its reader could not access, judged against permissions as they stood at the time:
SELECT t.trace_id, t.user_id, r.doc_id, t.created_at
FROM traces AS t
JOIN retrievals AS r ON r.trace_id = t.trace_id
LEFT JOIN access_snapshot AS a
ON a.doc_id = r.doc_id AND a.principal_id = t.user_id
WHERE t.created_at BETWEEN '2026-10-14 09:40' AND '2026-10-14 15:05'
AND a.doc_id IS NULL
ORDER BY t.created_at;
An illustrative scenario
Illustrative scenario, not a real incident: a customer support assistant answers questions about each customer’s own account.
| Time | What happens |
|---|---|
| Tuesday 09:40 | A deploy adds a new document collection to retrieval; the collection is indexed without the permission filter |
| Tuesday 14:55 | A customer tells support the assistant quoted figures from someone else’s invoice |
| 15:05 | On-call declares SEV1, names an incident lead and switches the assistant off |
| 15:20 | Traces, retrieval logs and configuration hashes for the window are preserved |
| 16:30 | The scoping query lists every answer that cited a document its reader could not access |
| Wednesday | The filter moves into the shared retrieval client so no collection can skip it; a canary test is added for every collection; the assistant returns in stages |
| Within 72 hours | The privacy officer assesses serious harm for each affected customer and notifies the Privacy Commissioner and those customers where required |
| Following week | Blameless review: why the deploy could skip the filter, and why monitoring did not catch it first |
The permission design that would have prevented this is covered in building private AI search.
Notification and New Zealand obligations
Under the Privacy Act 2020, a privacy breach that has caused or is likely to cause serious harm must be notified to the Office of the Privacy Commissioner and affected individuals. The Commissioner’s NotifyUs guidance says to do so ideally within 72 hours of becoming aware of a notifiable breach, even while still investigating. If a vendor processes the data for you, the clock starts when they know, so contracts should require prompt notice of every breach.
Regulated entities have more to consider. In October 2026 the Reserve Bank and the Financial Markets Authority set out supervisory expectations on cyber risks from frontier AI, stressing that boards and senior management need to know where AI is used and who is accountable. Take legal advice on what a specific incident triggers.
The review: blameless, specific, tested
Google’s SRE book describes blameless postmortems as focusing on contributing causes without indicting individuals or teams. For AI incidents, the review should also record:
- What changed: configuration hash before and after, model snapshot, prompt version, index build, provider status. This is only possible with versioned prompts and evaluations.
- How it was detected: monitoring, review queue, test or customer. Customer-detected incidents get a detection action.
- Times: to detect, to contain, to scope and to recover.
- Which evaluation would have caught it, and the regression case now added to the suite.
- Near misses that came before it. The AI Incident Database is also worth searching for incidents in your domain.
Where incident response goes wrong
| Failure | Consequence | Control |
|---|---|---|
| No traces retained | Scope cannot be established, so notification is guesswork | Trace retention policy matched to detection lag |
| Only an all-or-nothing switch | Teams hesitate to contain because it means a full outage | Graded kill switches, tested monthly |
| Fix without a test | The same failure returns with the next prompt change | Review cannot close without a regression case |
| Logs full of personal information | The evidence store becomes its own breach | Access controls and retention on traces |
| Near misses ignored | Patterns spotted only after real harm | Weekly near-miss review from the review queue |
Monitoring that detects these incidents early is covered in monitoring AI quality, and injection-driven incidents in prompt injection testing. On-call and incident response are part of managed AI operations for the systems we run.
- AI incident types and SEV1 to SEV4 criteria are written down and known to on-call staff
- Graded kill switches exist per feature, are read at run time and default to a safe mode
- Traces hold inputs, retrieved documents, versions, configuration hash, tool calls and outputs
- Trace retention covers the time it might take to discover an incident
- A scoping query exists for each major failure type, including permission-at-the-time checks
- The privacy officer can be reached, and vendor contracts require prompt breach notice
- Notifiable breach assessment and the 72-hour expectation are in the runbook
- Recovery uses the same staged gates as a release
- Every review adds a regression test and records detection source and times
- Near misses from review queues are reviewed weekly
Sources
- Incident Response Recommendations and Considerations for Cybersecurity Risk Management (SP 800-61 Rev. 3), NIST, 2025
- Postmortem Culture: Learning from Failure, Google SRE book, 2016
- PagerDuty Incident Response Documentation, PagerDuty, 2026
- NotifyUs of a serious privacy breach, Office of the Privacy Commissioner, 2026
- RBNZ and FMA outline supervisory expectations on cyber and AI risks, Reserve Bank of New Zealand, 2026
- AI Incident Database, Responsible AI Collaborative, 2026
Written by the Levy Street team in Wellington. Last updated 19 October 2026.