Silent Failure & Error-Handling Audit
Audits code for the failures that page you at 2am: swallowed exceptions, ignored return values, missing timeouts, and partial writes that leave state corrupted.
Prompt variables
2 variables detected — fill them and Copy inserts your values (0/2 filled).
Audit this code exclusively for silent failure modes — the category of bug that produces no stack trace, no alert, and a corrupted database three weeks later.
Work through this checklist against every code path:
1. **Swallowed errors** — catch blocks that log-and-continue (or worse, just continue) where the operation cannot actually continue safely. For each: what invalid state does execution proceed with?
2. **Overly broad catches** — `except Exception` / `catch (e)` that were meant for one failure but also absorb programming errors (typos, null derefs) that should crash loudly.
3. **Ignored return values** — functions whose return value signals failure (write counts, status booleans, Result types) called as statements.
4. **Missing timeouts** — every network call, lock acquisition, and queue read: what is the timeout, and what happens when it fires? "No timeout" means a thread leaks per failure.
5. **Partial-write states** — multi-step mutations (DB write + cache update + event publish) where a failure between steps leaves the system inconsistent. Is there a transaction, an outbox, or at least detection?
6. **Error info destruction** — re-raises that drop the original cause, error messages without identifiers ("update failed" — which record?), and retries that mask the first, most informative failure.
Output for each finding:
- **Line(s)** quoted
- **The 2am scenario**: a concrete short story of how this manifests in production (what fails, what the on-call engineer sees, why it is hard to trace back to here)
- **Severity**: DATA-LOSS / STUCK-SYSTEM / DEGRADED / NOISE
- **Fix** with code
Sort by severity. End with a one-paragraph verdict on the overall error-handling culture of this code.
```{{language}}
{{code}}
```
Comments (0)