Mitigate vs. Fix: Buying Time Safely Without Losing the Evidence

Incident Response & Ticketing Workflows

Chapter 6 · Mitigate vs. Fix: Buying Time Safely Without Losing the Evidence

Two of this subject's own technical courses opened with a warning: restarting a struggling process destroys the exact evidence needed to diagnose it. This chapter gives that warning its honest other half — sometimes stopping user pain immediately genuinely is the right call, and it doesn't have to come at the full cost that warning implies.

Two Different Goals, Often Conflated

Mitigating means restoring service quickly — a rollback, a restart, disabling a feature flag, failing over to a backup — without necessarily understanding the actual root cause yet. Fixing means actually understanding and resolving that root cause, so it doesn't recur. These aren't competing goals; they're often correctly sequenced one after the other, mitigate first, fix later — and for a genuinely severe, ongoing incident, that order is usually the right one, not a shortcut.

When Mitigating First Is the Right Call

For a genuinely severe (recall Chapter 3's SEV1/SEV2) ongoing incident, every additional minute has a real cost, and a full root-cause diagnosis can legitimately take longer than users should reasonably have to wait. Stopping the bleeding immediately is usually more valuable than a slower, fully-understood fix delivered at the same speed the incident is still actively hurting people.

The Deliberate Middle Path: Capture Before You Mitigate

The apparent tension between "mitigate fast" and "don't destroy evidence" isn't actually a contradiction — it's a sequencing problem with a small, critical step in between. When even a little time exists before mitigating — seconds to a couple of minutes, often available even during a genuine emergency — capturing a quick snapshot of the current state first preserves the key evidence a full diagnosis will need later, even though the mitigation itself is about to change or wipe out the live state.

What a quick capture actually looks like
A pg_stat_activity dump, a heap or thread dump, copying the exact error message and correlation ID, or simply a screenshot of the current metrics — the same techniques log1, perfdiag1, and appdiag1 each teach in depth, applied here as a fast, deliberate snapshot rather than a full investigation. It doesn't need to be complete; it needs to preserve enough to let tomorrow's investigation start from real evidence instead of nothing.

This isn't always possible — a truly critical SEV1 might genuinely have zero seconds to spare. But when there is a little time, this single step is what turns "mitigate fast" and "preserve the evidence" from opposing goals into a correctly-ordered sequence.

A mitigation applied blind can make things worse, not better
"Mitigate first" isn't a blanket rule that overrides all judgment. Restarting a service mid-way through a critical data write can cause real data corruption — a genuinely worse outcome than simply losing some diagnostic evidence. A few seconds spent asking "could this specific mitigating action itself cause additional harm?" is worth it even under real time pressure.

Don't Forget the Fix Once the Mitigation Works

A real, common failure mode: once the immediate pain stops, there's a strong pull to treat the incident as closed and move on, leaving the actual root cause never properly diagnosed. System Monitoring & Performance Diagnosis's own capstone shows exactly this pattern taken to its natural extreme — weeks of nightly restarts masking a genuine memory leak, never actually fixed because the mitigation kept working well enough that nobody circled back. A mitigation buys time; it doesn't substitute for the fix. A ticket shouldn't close until the root cause is genuinely understood, or a deliberate, documented decision is made not to pursue it further — which is a different thing entirely from simply forgetting.

Working Example: A 30-Second Capture Before a Rollback

A checkout service throws errors for every user — a genuine SEV1. The fastest mitigation is rolling back to the previous deploy. Before doing it, the on-call engineer spends 30 seconds: copying the exact error message and its correlation ID, and confirming via a quick check that no in-flight payment transaction is mid-write, so the rollback won't risk a partial or duplicate charge. Then the rollback happens. Service recovers in under two minutes. The captured error and correlation ID are exactly what let the team properly diagnose and fix the actual bug in the new deploy the next day — the mitigation bought time without becoming a permanent, undiagnosed workaround.

Hands-On Exercises

Exercise 1

Explain why this chapter says mitigating first and preserving evidence aren't actually opposing goals, despite the tension with log1's and perfdiag1's own "don't destroy evidence" warnings.

📄 View solution
Exercise 2

Explain why this chapter says "mitigate first" isn't a blanket rule, using the data-write restart example.

📄 View solution
Exercise 3

Explain what this chapter says the perfdiag1 capstone's own nightly-restart scenario demonstrates about the risk of stopping at "mitigated" instead of continuing to the fix.

📄 View solution

Chapter 6 Quick Reference

  • Mitigate = restore service fast; fix = understand and resolve the root cause — legitimately sequenced, not competing goals
  • For a genuinely severe, ongoing incident, mitigating first is usually the right call
  • The tension with "don't destroy evidence" resolves via a quick capture step before mitigating, when even a little time exists
  • A mitigation applied without a moment's thought can cause real additional harm — not a blanket rule to follow blindly
  • A ticket shouldn't close at "mitigated" — see perfdiag1's own capstone for what happens when it does, for weeks
  • Next chapter: Effective Escalation: What to Say, and to Whom