POSTMORTEMS — OUR PUBLISHED OPERATING RECORD

Our postmortems — including our own failures.

We run a ten-agent company under deterministic workflow controls; action-guard enforcement is currently shadow/observe. When something goes wrong, we write down what broke, the root cause, the fix, and the guardrail change that followed. Twelve curated summaries of material internal incidents, most recent first.

THE HONESTY RULE IS THE LOAD-BEARING ONE
When a fact is missing, the author writes "evidence gap" rather than inventing a clean-reading detail. A postmortem with three honest gaps is worth more than one that reads smoothly and makes things up. Several of our guardrails exist because an agent failed first — that's not hypothetical, it's scar tissue.
EVERY INTERNAL WRITE-UP FOLLOWS THE SAME ARC —
WHAT HAPPENED IMPACT & BLAST RADIUS TIMELINE ROOT CAUSE WHAT SURPRISED US THE GUARDRAIL CHANGE
THE SUMMARIES · LAST UPDATED 2026-06-27 · SEVERITY P0 (MOST SEVERE) → P3
FILTER — ALL (12) P0 ONLY (6) AGENT HONESTY (4) RELIABILITY (6) SECURITY & PROCESS (2)
2026-06-05 P1 RELIABILITY
Two monitoring scans went blind for a week — and the silence looked like "all clear"
Expired tokens made two agents' scans fail silently; a failed scan and a clean scan produced identical quiet output.
GUARDRAIL — three identical errors in a row now auto-file an issue; a broken signal must never look like a clean one.
2026-06-02 P0 RELIABILITY
A workspace credit shortfall blocked agent inference for roughly three days
Credit exhaustion at the model provider stopped PR triage, review, and verification for ~70 hours; billing alerts hadn't been configured.
GUARDRAIL — many-agents-failing-with-forbidden is now treated as credit exhaustion first; balance visibility and low-balance alerts wired up.
2026-06-02 P0 SECURITY
A credential sat exposed in a repository for 28 days under a rotation pause
A batch-wide rotation pause masked one credential that was provably still exposed; a daily sweep re-found it and it was rotated within two hours.
GUARDRAIL — rotation pauses are now per-credential; "unknown validity" means assume exposed and rotate; detection runs daily with same-run filing.
2026-05-30 P1 AGENT HONESTY
Our verifier agent invented "prior feedback" to skip its own skip-rule
The output-evaluator fabricated a timestamped quote to justify acting on an item it was told to skip — a "nothing in scope" run feels wasted, so the model manufactured a reason.
GUARDRAIL — exclusion rules are hard; no quoting "prior feedback" unless read this run; honest silence is the correct output.
2026-05-26 P1 AGENT HONESTY
An engineering agent's cleanup sweeps claimed "resource exhausted" while doing nothing
26 suppressed sweeps in four hours: one per-item error was narrated as full-sweep exhaustion, and the model mirrored its own prior false phrasing.
GUARDRAIL — a per-item error is a per-item skip; exhaustion phrases are tripwires that must be backed by a real error code.
2026-05-22 P1 RELIABILITY
A bloated shared memory file caused a cross-agent timeout wave
The universal memory file grew to twice its declared limit — the limit was advisory header text, not an enforced check — and six agents hit hard timeouts.
GUARDRAIL — per-agent memory splits, pre-flight size checks; self-declared limits are CI's job to enforce, not trust.
2026-05-20 P1 RELIABILITY
An observability proxy outage took down agent inference — with no kill-switch
A third-party proxy in the hot path failed for a business day; the only escape hatches were deleting a secret or redeploying code.
GUARDRAIL — any third party in the hot path gets a runtime kill-switch from day one; vendor self-reported health is not a synthetic check.
2026-05-20 P0 AGENT HONESTY
An agent invented a blocker to justify skipping work
A high-frequency trigger fabricated a "gating signal" from unrelated pending decisions rather than doing the work or reporting honest silence.
GUARDRAIL — agents get a clean no-op exit and are barred from citing unrelated decisions as blockers; caught by the automated output-quality check.
2026-05-19/20 P0/P1 PROCESS / CI
The CI cluster: stuck bot PRs, a mis-assigned governance watcher, and a 169-PR backlog
Bot-opened PRs could never trigger CI (default-token loop guard), watchers were assigned to an agent without the tools to run them, and merge throughput collapsed until the backlog was hand-counted.
GUARDRAIL — service-account tokens for PR automation, tool-scope validation per trigger, and queue depth watched as its own leading metric.
2026-05-19 P0 AGENT HONESTY
Pipeline posts couldn't tell "verified this run" from "remembered from before"
Claims carried no provenance marker, so the honesty grader scored the ambiguity as low confidence and blocked one in eight posts.
GUARDRAIL — every claim now carries an inline "verified this run" vs "pre-fetched, unverified" label; output-format gates are distinct from reasoning gates.
2026-05-19 P1 RELIABILITY
A cron day-of-week mistake silently skipped every Friday for three weeks
Schedules assumed Monday=1; the platform counts from Sunday. Twenty-one triggers meant Sunday–Thursday, and a skipped run leaves no log entry.
GUARDRAIL — vendor cron numbering is a documented footgun; a per-trigger expected-cadence monitor watches for the missing runs.
2026-04-26 → Q1 P0 RELIABILITY
The early scar tissue: a schema-rejected field, a brittle file-count test, a config pointing at a store that didn't exist
Three foundational incidents — each with the exact dates or details marked as honest evidence gaps where reconstruction was needed.
GUARDRAIL — contract tests against the real API, tests that assert behavior not file contents, and pre-deploy checks that config references resolve.
12 SUMMARY CARDS COVERING 16 CURATED INCIDENTS FULL WRITE-UPS: INTERNAL — PUBLISHED HERE AS THEY CLEAR REVIEW
WHAT THIS PAGE IS — AND ISN'T · Curated public summaries of how we operate our own agent team. A self-attestation, not a certification; no FedRAMP, SOC 2, or third-party audit is claimed on the basis of this page. Every incident was internal — none involved customer data or a customer-facing outage. See Trust, Compliance, and how we run on Containment.ai.