ConceptAdvancedDesigning for Uncertainty & Trust / Designing for failure and graceful degradation / #18

What does graceful degradation look like for a multi-step agent?

SPARK designing an agent chain so one broken link doesn't undo the good ones

NorthWave Mobile runs a self-service agent that resolves data-overage disputes in five steps. Marisol Devany is a hotel night auditor who has used it three times before, always without a hitch, and always after midnight.

The direct answer
Never build a multi-step agent as one all-or-nothing transaction. The moment a single step fails, freeze and show every step already completed, name the exact step that broke and why, and hand off only that piece. Nothing already verified gets thrown away or redone.
Do this, in order
  1. Treat each step's output as final the moment it's verified, not provisional until the whole chain finishes.Why: this is what makes partial completion possible at all. Without it there's no safe place to stop.
  2. When a step fails, show which ones already stand, not just an error.Why: a bare "something went wrong" throws away work a person watched happen, and they don't trust it happened at all.
  3. Name the exact step that broke and hand off only that piece.Why: a person can act on "step 3 needs a human." Nobody can act on "try again."
  4. Never silently re-run steps that already succeeded.Why: re-running a finished step risks doing it twice, which is worse than the original failure.
  5. Track how often people restart the whole chain after a single-step failure.Why: a high restart rate means your partial-completion design isn't actually visible to the person using it.
  6. Leave the common path, all five steps succeeding, exactly as fast as it is now.Why: this redesign is about the failure path. Most disputes never touch it.

How to answer this, stage by stage

Nobody is grading whether you can name five pipeline stages. They're grading what the agent says the moment one of them breaks.

Stage 1
Pick one chain, not the whole idea of "agents"
Say it like this
"I'll ground this in NorthWave Mobile's overage-dispute agent, five steps, verify identity, pull usage, calculate credit, apply it, confirm by text."
Why this works
Stops the answer from floating above any real system, where "graceful degradation" is just a phrase.
Stage 2
Name your structure out loud
Say it like this
"I'll use SPARK. Situation, how this works today. Payoff, the habit I want. Anchor, the one design call. Risk, what breaks it. Keep out, what I'm not building yet."
Why this works
Signals a method, not a list of features improvised on the spot.
Stage 3
Show today's manual chain
Say it like this
"Before this agent, a customer called a rep, waited on hold, and walked them through their own usage history out loud, ten to twenty minutes, every single time."
Why this works
Grounds the anchor in a real cost the agent is actually replacing.
Stage 4
Reframe what "graceful degradation" actually means here
Say it like this
"This isn't about catching errors. It's about the agent always knowing, and saying, what's already true, even when one part of it isn't working."
Why this works
Separates a real answer from a generic "add error handling" one.
Stage 5
Give the anchor
Say it like this
"Each step is stamped done the second it's verified. If step three fails, the agent shows steps one and two as settled, names step three by name, and only that piece goes to a human."
Why this works
This is the direct answer, stated as a concrete build decision instead of a principle.
Stage 6
Run the failure through it
Say it like this
"The first time the credit calculation needs a human because a plan changed mid-cycle, the customer isn't told to start over. They're told exactly which piece is waiting on a person, and everything else already stands."
Why this works
Answers the real question underneath: what happens the first time a step actually breaks.
Stage 7
Close on the one line
Say it like this
"Graceful degradation isn't a softer error message. It's an agent that never makes you redo work it already finished."
Why this works
Restates the direct answer in one breath, ready for a follow-up.

Let's learn

What happens when step three of five quietly fails, and the customer never finds out that steps one and two were already fine?

NorthWave Mobile's agent answers one question for a customer: does this overage charge get credited back, and how much. Before it, a customer called a rep, waited on hold, and read out two months of usage history by phone, a slow process that at least never lost any part of what had already been said.

Hand sketched flow diagram titled A dispute, before the agent. Five boxes: Notice charge, Call rep line, Wait on hold highlighted, Explain usage, Get credit.
Slow, but nothing in this chain ever got thrown away halfway through.

Now the agent runs five steps in about four seconds: verify identity, pull the usage log, calculate the credit, apply it, send a text confirming it.

Hand sketched flow diagram titled The five-step agent chain. Five boxes: Verify identity, Pull usage log, Calculate credit highlighted, Apply credit, Send confirm.
Step three is the one that occasionally needs a human. The chain was built to treat all five as one unit anyway.

Here's the turn: the extra failures at step three were never the real problem. The real problem is what the agent does the moment step three can't finish. Right now it shows one flat message, "we couldn't process this," and a "start over" button, throwing away two steps a customer just watched succeed.

Where the five-step chain actually breaks, per 1,000 disputes
140 70 0 18 Verify id 46 Pull usage 121 Calc credit 29 Apply credit 9 Send text
Step three fails more than the other four combined, mostly when a plan changed mid-billing-cycle in a way the calculation can't resolve alone.

At its worst, a customer restarts three times, each attempt losing the same verified identity check, gives up, and pays an overage charge that was never actually owed.

Hand sketched comparison titled The day step 3 breaks. Left, a red box icon labeled Start Over, caption steps 1, 2 lost. Right, a teal gauge icon labeled Steps Stand, caption 1 and 2 still done.
Same failure. Only what the screen was willing to keep changed.
The decision I would take back NorthWave's engineers built the five-step chain as one atomic transaction, complete or roll back entirely, because early on that was the simplest way to guarantee a customer never saw a half-finished, possibly wrong result. That made sense while every step nearly always succeeded together. It stopped making sense once step three, tied to a plan-change lookup, became the one step that legitimately needs a person sometimes.

What I would leave alone: the four out of five disputes where all five steps sail through don't need any of this. Nothing here slows down the common case.

The lesson: a chain that treats "mostly working" the same as "fully working" will eventually throw away good work to punish one bad step.

Now here is the same thing as a story

The short version above is what you'd say defending this design to NorthWave's engineering review. Read this one for how close the near miss actually came.

Marisol Devany runs the night desk at a downtown hotel, and she does most of her personal errands between 1 and 3 in the morning, the only quiet stretch in her shift. She'd used NorthWave's dispute agent three times before, always for small data overages, and it had always worked in under five seconds.

This time her bill showed a forty-two dollar overage from a month she'd barely used her phone. She opened the agent, and it verified her identity instantly, pulled her usage log a second later, both green checks right there on the screen, and then sat spinning on "calculating your credit" for eleven seconds before returning "we couldn't process this request, please try again."

Knowledge spark: why would step three specifically be the one that stalls? A multi-step agent often chains together separate systems: identity, usage records, billing rules, payment. The step furthest from a simple lookup, here, calculating a credit against a plan that changed mid-cycle, is usually the one most likely to hit a case its rules weren't built for. The earlier steps are simple checks. This one is a judgment call.

Marisol tapped "try again." The agent re-verified her identity, re-pulled the same usage log she'd already watched it confirm, and stalled at the same spot a second time. She tried a third time. On the fourth attempt it finally went through.

Hand sketched labeled parts diagram titled What a failure message needs. Center document icon labeled Failure Message, with four callouts around it: which step broke, what still stands, what happens next, who to contact.
The old message gave Marisol none of these four. She had no way to know steps one and two were fine every single time she retried.

Two days later, checking her account out of habit, Marisol noticed two separate text confirmations for the same credit, one from her second attempt, one from her fourth. Both had gone through. She called NorthWave before either credit posted twice to her account, and a rep caught it just in time, reversing the duplicate before it cleared.

Nothing was ever wrong with steps one and two. The chain just couldn't remember that, so it asked her to prove it again, and again, until one of those retries collided with itself.

With the redesigned chain, the moment step three stalls, the screen shows two settled checkmarks, identity and usage, a clear line, "calculating your credit needs a quick human look, usually done within the hour," and nothing else re-runs. Run the same night forward: Marisol sees her two verified steps standing, gets a single text an hour later confirming one credit, and never taps "try again" at all.

The old chain asked Marisol to trust that nothing was lost every time it made her start over. The new one shows her exactly what's still standing, and the redesign's own numbers below show the same pattern holding up on a completely different chain.

I built the chain as one unit because it felt safer, nothing half-done ever reaching a customer. It took a near-duplicate credit to see that "nothing half-done" and "nothing thrown away" are not the same promise.

SPARK, in one screenNot a lecture on error handling. SPARK is what tells you which single decision the whole chain hangs on.

S
Situation. How this happens today, without the agent.
A customer calls a rep, waits on hold, and reads out their own usage history by phone.
Grounds the whole design in a real, slow alternative.
P
Payoff. The habit this should build.
Trusting a partial result and acting only on the piece that's stuck, instead of restarting the whole chain out of doubt.
Names the actual behavior change the design is trying to produce.
A
Anchor. The one decision everything hangs on.
Each step is stamped final the moment it's verified. A failure shows what's settled, names the exact broken step, and hands off only that piece.
This is the hardest step and the answer to the question: a concrete, arguable design decision.
R
Risk. What breaks the first time it's wrong.
The first time step three genuinely can't resolve on its own. The anchor survives it by never touching steps one and two again.
Proves the anchor was designed against its own failure, not just described.
K
Keep out. What we won't build, day one.
No system that guesses how far back to roll back on failure, and no renegotiation between steps. Every step is either done or not; there's no in-between state to manage.
Shows judgment about what stays out, not a wish list of what's in.
Hand sketched icon list titled What graceful degradation means. Four items: a document icon labeled Freeze finished steps, a gauge icon labeled Name the exact break, a funnel icon labeled Hand off just that step, a scale icon labeled Never redo verified work.
Four rules, not a whole rebuild. This is the entire anchor.

The recap, one line per letter: situation is a customer on hold reading out their own usage history, payoff is teaching customers to trust a partial result instead of restarting on doubt, anchor is stamping each step final and naming the exact break, risk is the night step three genuinely can't resolve alone, and keep out is holding back any guessed rollback logic.

Hand sketched icon list titled What we are not building yet. Three items: a box icon labeled No guessed rollback, a question mark box icon labeled No step renegotiation, a circle icon labeled No silent full retry.
Each of these sounds reasonable to want eventually. None of them is needed to fix the actual problem.

And if you want to be sure it really works, try it somewhere elseSame five letters, a customs clearance agent instead of a phone bill. A different chain, the same broken atom.

Portmere Customs Brokerage runs a five-step agent that clears imported goods: classify the goods, check the tariff code, calculate duty owed, flag inspection risk, generate the paperwork. Corin Vasquez is a brokerage clerk who runs dozens of shipments through it daily. Mapped onto SPARK: situation is a clerk today, manually cross-referencing tariff codes in a binder, a task that used to take twenty minutes per shipment; payoff is the habit to build, trusting the steps already cleared instead of re-checking a whole shipment from scratch.

The anchor here is structurally the same idea aimed at a different break: freeze each cleared step, and when the inspection-risk flag can't resolve on its own, a case with an unusual country-of-origin combination, show the goods classification and tariff code as already settled, and route only the risk flag to a customs officer. The risk Portmere's team designed against was a clerk seeing any failure and manually re-keying the entire shipment, including the tariff lookup that was already correct, adding twenty minutes back for a problem that only ever touched one step.

Hand sketched flow diagram titled Portmere's clearance chain. Five boxes: Classify goods, Check tariff code, Calculate duty, Flag risk highlighted, Make paperwork.
Swap "credit calculation" for "inspection risk," and the same broken atom shows up in a completely different industry.
Share of clearance chains fully restarted after a single step failure, by week
80% 40 0 Week 5, redesign ships Week 1 Week 8
Same shape as NorthWave's curve, a different industry entirely. The fix is the same atom, not the same product.

Swap the trigger and it still runs.
Speed: an interviewer caps you at sixty seconds. Say "stamp each step final on completion, and on failure show what's settled and name the exact broken step," and stop.
Cost: there's no engineering time this quarter to rebuild the whole pipeline's state model. Say so honestly, and start with the one step that fails most, since that's where nearly all the wasted restarts come from.
The model gets better, for real: if the credit-calculation step's accuracy improves and near stops failing, that's still not a reason to remove the partial-completion design. Even a rare failure deserves to keep the work already done.

Where people run it wrong.
They treat "add a retry button" as the fix, when a retry on an atomic chain just repeats the same all-or-nothing loss.
They assume a clean single error screen looks more trustworthy than showing partial progress, when it's actually just less honest.
They wait for a near-duplicate charge to notice the design gap, instead of asking upfront what a customer sees the first time one step alone fails.

How to use it live. When someone asks what graceful degradation looks like for any multi-step system, ask one question first: if step three failed right now, would the customer lose steps one and two? Design so the honest answer is always no.

Flashcards (tap any card to flip it)

1 · THE FRAMEWORK
What framework fits a "what does graceful degradation look like" question?
Tap to flip
ANSWER
SPARK: situation, payoff, anchor, risk, keep out. Ground the anchor in today's manual process, then prove it survives one step actually breaking.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Marisol Devany, a hotel night auditor who had used NorthWave's dispute agent three times before, always without a hitch.
3 · THE SITUATION
How does this happen today, without the agent?
Tap to flip
ANSWER
A customer calls a rep, waits on hold, and reads out two months of usage history by phone, every single time.
4 · THE ANCHOR
What's the one design decision this answer hangs on?
Tap to flip
ANSWER
Stamp each step final the moment it's verified. On failure, show what's settled, name the exact broken step, and hand off only that piece.
5 · THE OLD DECISION
What decision would you take back?
Tap to flip
ANSWER
Building the five-step chain as one atomic transaction, complete or roll back entirely, which made sense until one step became the one that legitimately needs a human sometimes.
6 · THE NUMBER
Fill in the blank: out of 1,000 disputes, the calculate-credit step failed about ___ times, more than the other four steps combined.
Tap to flip
ANSWER
About 121 times. The other four steps combined failed about 102 times, so step three alone still outweighs them.
7 · THE REPLAY
Same failure, redesigned chain. What changes?
Tap to flip
ANSWER
Marisol sees her two verified steps standing, gets one text an hour later confirming the credit, and never taps "try again" at all.
8 · CROSS PRODUCT TRANSFER
Section 4 answers this again for a different product. Which product, and what's the anchor there?
Tap to flip
ANSWER
Portmere Customs Brokerage's clearance agent. The anchor freezes each cleared step and routes only a stuck inspection-risk flag to a human, instead of re-keying the whole shipment.

Check yourself Score: 0 / 0

True or false
1. True or false: the redesigned agent re-verifies a customer's identity every time they retry after a step-3 failure.
  • True
  • False
Show hint
Look at the anchor step.
Show answer
False. Each step is stamped final once verified, so a later failure never triggers a re-check of a step that already succeeded.
Multiple choice
2. Why did Marisol end up with two separate credit confirmations for the same overage dispute?
  • A. NorthWave's model doubled the credit amount by mistake.
  • B. Two separate retries each eventually completed all five steps, including one that had already succeeded.
  • C. Marisol asked for a second credit on purpose.
  • D. The confirmation text was sent to her twice by accident.
Show hint
Look at what "try again" actually re-runs in the old design.
Show answer
B. Because the chain treated every attempt as a fresh whole run, two different attempts both eventually finished, applying the credit twice.
Fill in the blank
3. Fill in the blank: in the eight weeks after the redesign shipped in week 5, the full-restart rate fell from about 70 percent down to about ___ percent by week 8.
Show hint
Look at the line chart's last point.
Show answer
7 percent. The restart rate kept falling for three weeks after launch, as customers learned the partial result could actually be trusted.
Short answer, apply it yourself
4. Think of an app or a form where losing your progress after one error made you angrier than the error itself. What would "keep what already worked" have looked like there?
Show hint
Think about a checkout form, a long application, or an upload that failed partway.
Show answer
Model answer: Most people can name a multi-page form that made them re-enter everything after one field failed validation, exactly the same all-or-nothing atom this answer redesigns.
Short answer, where it wouldn't matter
5. Name a case in NorthWave's agent where this partial-completion design doesn't add anything.
Show hint
Look at "what I would leave alone."
Show answer
Model answer: Any dispute where all five steps succeed on the first pass. There's no failure to be graceful about, so the redesign changes nothing for most customers.
Short answer, name the reversal
6. What old design decision does this answer take back, and why did it make sense when it was made?
Show hint
Look at "the decision I would take back."
Show answer
Model answer: Treating the five-step chain as one atomic transaction. It made sense while steps rarely failed independently, and stopped making sense once one specific step became a routine source of edge cases.
Before you close the answer
Why this works
Tests whether you'll design for the moment a step actually breaks, or just describe a happy-path pipeline with the word "graceful" bolted onto the error screen.
Follow-up traps
"What if two steps depend on each other and can't really be separated?" Response: then they're really one step for this purpose, name them as a single unit and stamp that unit final together, the rule doesn't require every step to be independent, only that whatever is stamped final actually is.

"Isn't showing partial progress just moving the error message, not fixing anything?" Response: no, it changes what a customer does next: instead of restarting and risking a duplicate, they wait on the one named piece, which is what actually stopped the near-duplicate credit.
If pressed
NorthWave's actual fix used an idempotency key per step, not just per request, so even if a customer does retry, the apply-credit step can detect it already ran and refuses to run twice, a second, independent guard behind the design fix itself.
From U2xAI Academy

From answering questions to owning outcomes.

A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.

  • A live AI agent you actually shipped
  • A launch decision you can defend under pressure
  • An interview-ready portfolio, not more flashcards
Know more