AI Incident Response Plan
Incident response procedures for AgentTrust Edge Gateway.
Standard: ISO/IEC 42001:2023 Annex A.9.4 Document owner: Platform Engineering Lead Review cadence: Quarterly; after any P1/P2 incident Classification: Internal — Restricted
1. Severity Levels
| Level | Definition | Response Time | Examples |
|---|---|---|---|
| P1 — Critical | Complete service unavailability or systematic harmful approvals | 15 min | Gateway down; audit ledger corrupted; auth bypass |
| P2 — High | Partial degradation affecting core governance; data breach | 1 hour | Judge circuit breaker open; approval rate anomaly >50% |
| P3 — Medium | Single-component failure with fallback active | 4 hours | Redis unavailable (rate limiting disabled); policy engine crash |
| P4 — Low | Cosmetic or non-urgent issues | Next business day | Slow judge latency; single webhook delivery failure |
2. Incident Scenarios and Response Procedures
2.1 Gateway Complete Unavailability (P1)
Detection: Health probe /v1/health returns 5xx; alert fires.
Response:
- On-call engineer acknowledges alert within 15 min
- Check pod logs:
kubectl logs -n agentrust-edge deploy/gateway --tail=200 - Check database connectivity: verify PostgreSQL pod is running
- Check Redis connectivity:
redis-cli -a $REDIS_PASSWORD ping - If DB migration failed on startup: rollback deployment, investigate migration
- Escalate to Platform Lead if not resolved in 30 min
- Post status update to internal incident channel every 30 min
Recovery: Roll back to previous deployment image tag; re-run smoke tests.
2.2 Systematic Harmful Approvals — False Negatives (P1)
Detection: Approval rate exceeds normal range; human reviewer reports pattern; external report via /v1/feedback/adverse-impact.
Response:
- Immediately set decision thresholds to block all
highandcriticalrisk tier — pause auto-approve - Pull recent decisions:
GET /v1/audit/executions?decision=approve&limit=100 - Identify common attributes (agent_id, framework, policy pack version)
- If policy pack issue: disable affected pack, revert to previous version
- Notify affected operators via email within 2 hours
- Conduct manual review of past 24h of approved executions for harm
Recovery: Re-enable approval only after root cause is identified and policy corrected; re-test against adversarial golden test suite.
2.3 LLM Judge Engine Failure (P2)
Detection: Circuit breaker opens (_circuit["open"] == True); alert judge_failure_rate fires.
Immediate action: Judge returns None — governance pipeline continues without judge score (safe degradation). Decision engine uses available signals only.
Response:
- Check circuit breaker state: inspect logs for
"Judge circuit breaker is open" - Test judge backend manually:
curl http://localhost:11434/api/chat(Ollama) or Anthropic API test - If Ollama: check pod resources, model download status
- If Claude API: check
ANTHROPIC_API_KEYvalidity; check Anthropic status page - Reset circuit breaker by restarting the gateway worker (the breaker resets after 60s automatically)
Recovery: Confirm judge scores are being generated again; verify sampling rate is correct.
2.4 Audit Ledger Hash Chain Corruption (P1)
Detection: GET /v1/audit/verify-chain returns integrity failure; alert ledger_integrity_failure fires.
Response:
- Immediately halt all writes to the audit ledger (set
AUDIT_READONLY=trueenv var and restart) - Identify the first corrupted record by bisecting the chain
- Do NOT delete records — preserve all evidence
- Restore from last known-good backup
- Replay executions that occurred after the last backup if possible
- Notify affected operators; document in incident log
Recovery: Verify chain integrity passes before re-enabling writes.
2.5 Approval Rate Anomaly (P2)
Detection: Alert approval_rate_drop fires (>20% change in rolling 1h window).
Response:
- Pull analytics:
GET /v1/analytics/summary?window=60 - Check if a policy pack or threshold config was recently changed (
git log config/) - Check for increased adversarial input traffic (
grep adversarial gateway.log) - If config change: roll back to previous version
- If traffic anomaly: check rate limiter effectiveness; increase sensitivity if needed
2.6 Data Breach — PII Exposed in Logs or External Systems (P1)
Detection: PII detection alert fires; manual discovery; external report.
Response:
- Identify scope: which envelopes contain exposed PII? (
grep -i "ssn\|password\|api.key" audit_records) - Rotate affected credentials immediately
- Notify Data Protection Officer within 1 hour
- If GDPR breach: notify supervisory authority within 72 hours of discovery
- Notify affected data subjects if high risk (Article 34 GDPR)
- Redact PII from audit records using data subject deletion API
2.7 Authentication Bypass (P1)
Detection: Anomalous traffic with non-JWT tokens; unusual tier-level access patterns.
Response:
- Rotate
AGENTRUST_JWT_SECRETimmediately (all existing tokens invalidated) - Pull access logs for the past 24h; identify all requests that bypassed auth
- Invalidate all active API keys via
AGENTRUST_API_KEYSrotation - Conduct forensic review of audit ledger for unauthorised executions
- Notify affected customers
3. Post-Incident Review
Every P1 and P2 incident requires a written post-mortem within 5 business days:
Template:
Incident ID: INC-YYYY-NNN
Date:
Severity:
Duration:
Impact:
Timeline:
- [TIME] Alert fired
- [TIME] Engineer acknowledged
- [TIME] Root cause identified
- [TIME] Mitigation applied
- [TIME] Resolved
Root Cause:
Contributing Factors:
Corrective Actions:
1. [ACTION] — Owner: [NAME] — Due: [DATE]
2. ...
Lessons Learned:Post-mortems are reviewed in the monthly AI Governance Committee meeting and feed into the risk register update.
4. Contact List
| Role | Name | Contact |
|---|---|---|
| On-call Engineer | [ROTATION] | PagerDuty rotation |
| Platform Lead | [NAME] | [EMAIL] |
| Data Protection Officer | [NAME] | [EMAIL] |
| AI Governance Lead | [NAME] | [EMAIL] |
| Communications Lead | [NAME] | [EMAIL] |
5. Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | [DATE] | [NAME] | Initial version |