Production gotchas — silent failures and partial writes
The failures that become pages are the ones nobody was watching: a regression hiding in growth, a cron change that silently widens the freshness SLA, and appends that duplicate on retry — cap each with a guard, a computed worst-case lag, and an atomic partition replace.
At a glance
| When | Hardening pipelines that already serve consumers; After an incident caused by a silent failure or a partial write |
|---|---|
| Where | Production Operations |
| Why | The failures that page you are the ones no dashboard was watching — silent regressions, silently widened SLAs and appends that duplicate on retry. |
Learning objectives
- Catch silent failures — hidden cost regressions and silently widened freshness SLAs
- Stop partial writes — no appends to recomputable partitions, no unguarded prod writes
- Put the failure class in the alert text so on-call can triage before touching anything
What you need
- The pipelines currently in production
- An alerting channel wired to task failure rate and SLA misses
- CI where a hook can warn or block a merge
Steps
- A working pipeline silently becomes expensive and nobody notices until the invoice. (from pattern-cost-guardrails )
- A change can silently widen the freshness SLA of a source — compare the schedule/cron in the diff with the source's declared freshness SLA and warn with the computed worst-case lag. (from hook-freshness-pre-merge )
- Partial writes come from appends — retries and backfills duplicate or corrupt data because writes are appends; replace the partition atomically instead. (from pattern-idempotent-partition-overwrite )
- Read the first real error in the log, not the last — and retrying a data error re-runs the same failure; fix or quarantine the input first. (from runbook-pipeline-failed )
- Guard every production write — any write-class tool against a production target is suspended and surfaced for a human "approve once" token scoped to the single call. (from hook-prod-write-confirm )
- `DROP TABLE prod.orders` from an agent is denied and surfaced for confirmation. (from hook-destructive-sql-guard )
- Retry with backoff, and put the failure class in the alert text. (from runbook-pipeline-failed )
Check yourself
- A cron change that would violate the freshness SLA warns at pre-merge with the computed worst-case lag.
- No production write path exists that a hook does not classify, confirm or block.
Worked example
The silent widening example — from hook-freshness-pre-merge
Changing a source cron from hourly to daily warns that the 6h freshness SLA
will be violated.
The production write suspension — from hook-prod-write-confirm
Classify the tool target as production by connection string, project or
catalogue tag. Any write-class tool against a production target is suspended
and surfaced for a human "approve once" token scoped to the single call.
Sourced from
Security scan
Last sweep 2026-10-24: 0 finding(s), 0 marked as examples.
Common gotchas
- Read the first real error in the log, not the last.
- Retrying a data error re-runs the same failure; fix or quarantine the input first.
- Spend varies with data growth and regressions hide in growth — total-spend dashboards cannot see them.
Production considerations
- Retry with backoff, and put the failure class in the alert text.
- Make every task idempotent so a re-run is always safe.
Diagram
silent failures + partial writes
|
|- regression hides in growth --> unit metric + baseline catches it
|
|- cron change --> freshness SLA widened silently --> warn with worst-case lag
|
|- append on retry --> duplicated rows --> atomic partition replace
|
|- prod write --> classified + confirmed or blocked
Registry stats
| Verification | community · Oct 23, 2026 |
|---|---|
| Completeness | 81 |
| Trust multiplier | ×1.25 |
| Composite | 34.15 · adequate |
| Freshness | 1 days since last source check |
| Difficulty | intermediate |
| Version | 0.1.0 |
| License | CC-BY-4.0 |
| Security flags | none |
Did this solve your problem?
Production gotchas — silent failures and partial writes