Opinion3 Min Read
Demos Close Deals. Boring Systems Keep Them.

Demos Close Deals. Boring Systems Keep Them.

Aadesh Ingle
Try it yourselfException recovery simulator

About ninety days after an AI contract is signed, the conversation changes. The client stops discussing the successful demo and starts asking why Tuesday's batch failed, what the system costs per month, and what happens when an input looks like this.

A demo runs on selected input in a meeting with the builders present. Production receives whatever the workflow produces, including malformed input and provider failures, while the builders are elsewhere. In the deployments we have shipped, the model's average quality has rarely explained the support burden by itself.

The unglamorous list

What actually gets judged after day ninety:

  • Does it degrade gracefully when an upstream provider hiccups, or does it take the client's workflow down with it?
  • When it's wrong (and on a long enough timeline it is always sometimes wrong), does anyone find out before the customer does?
  • Can the client's own team understand what it did and why, or does every anomaly become a support ticket to us?
  • Is the cost curve flat as volume grows, or does success itself become the budget problem?

These questions rarely appear in the sales demo. They determine how much attention the system requires after launch and whether the client can operate it without us.

Operational routes

The boring system knows where an exception goes

Illustrative routes for the article’s provider failures, cost anomalies, and regressions. Recovery depends on the operation and its configured policy.

Scenario

The ordinary lane still leaves inspectable evidence.

Sequence

  1. Observe the resultCurrent
  2. Confirm deliveryUpcoming
  3. Retain the evidenceUpcoming
Operational routing: success, conditional recovery, or manual handling, followed by ownership, client status, and evidenceEVERY RUN NEEDS AN EXPLAINABLE OUTCOMERecovery is conditionalDETECTION → OWNER → CLIENT STATUSKeep the trace attached to the decision
Workflow runInput + observed outcome
Success laneExpected result delivered
Detect exceptionExpected output available
Recoverable laneOnly under a safe policy
Manual laneAutomation paused
Named ownerEvidence + next action
Client-visible statusWhat happened; what next
Run evidenceDecision + outcome retained

Observe the result

Track the workflow run and whether its expected output landed where the client works.

Read the full explanation

Successful run

The ordinary lane still leaves inspectable evidence.

  1. Observe the result. Track the workflow run and whether its expected output landed where the client works.
  2. Confirm delivery. The expected result is available to the client. A successful run still belongs in the operational record.
  3. Retain the evidence. Keep the run context and result available so the client team can inspect what happened.

Provider failure

Illustrative routing of the article’s failure class; recovery depends on the operation and policy.

  1. Observe the provider failure. The upstream provider fails while the workflow is running; preserve what is known about completed side effects.
  2. Detect and isolate. Associate the failed call with its workflow and affected output rather than silently losing the request.
  3. Check the recovery policy. This lane is eligible only if the configured retry or degraded-mode policy is safe for this operation. Recovery is not guaranteed; otherwise use manual handling.
  4. Assign the incident owner. A named operations or engineering owner can inspect the failure and decide the next safe action.
  5. Make the pause visible. Tell the client that processing is delayed or paused and how the workflow will be handled next; do not report success before recovery.
  6. Retain the decision. Preserve provider errors, attempted recovery, side-effect state, and the owner decision so the run can be reconstructed.

Cost anomaly

Illustrative routing; no spending threshold or renewal claim is invented.

  1. Observe workflow cost. Cost attributed to a workflow makes a change in spending visible without guessing which client caused it.
  2. Detect the anomaly. Inspect the cost signal with the affected workflow, usage, and output context. These are sample diagnostic fields for the article’s cost-per-workflow signal.
  3. Pause for inspection. Route the affected automation for manual assessment under its configured budget policy.
  4. Assign the cost owner. The named owner inspects the usage trace and decides whether to constrain, correct, or resume the workflow.
  5. Explain the workflow state. Make any service impact and next action understandable to the client team.
  6. Preserve cost evidence. Keep the usage context and the decision with the run so the anomaly is explainable later.

Regression

Illustrative routing of a failed behavior check; no invented incident or service target.

  1. Observe changed behavior. A changed prompt, model, or retrieval path can alter the behavior the workflow depends on.
  2. Surface the failed check. An eval failure or production exception identifies the affected behavior and points to run evidence.
  3. Hold the affected path. Pause or route the affected workflow for human handling while the regression is investigated.
  4. Assign the engineering owner. The owner receives the failing case and version context, then determines the correction and validation needed.
  5. Show the client what changed. State that the affected automation is paused and identify the available manual workflow.
  6. Keep the regression trace. Preserve the case, version context, owner decision, and outcome for diagnosis and future evaluation.

Successful run

The ordinary lane still leaves inspectable evidence.

  1. Observe the result. Track the workflow run and whether its expected output landed where the client works.
  2. Confirm delivery. The expected result is available to the client. A successful run still belongs in the operational record.
  3. Retain the evidence. Keep the run context and result available so the client team can inspect what happened.

Provider failure

Illustrative routing of the article’s failure class; recovery depends on the operation and policy.

  1. Observe the provider failure. The upstream provider fails while the workflow is running; preserve what is known about completed side effects.
  2. Detect and isolate. Associate the failed call with its workflow and affected output rather than silently losing the request.
  3. Check the recovery policy. This lane is eligible only if the configured retry or degraded-mode policy is safe for this operation. Recovery is not guaranteed; otherwise use manual handling.
  4. Assign the incident owner. A named operations or engineering owner can inspect the failure and decide the next safe action.
  5. Make the pause visible. Tell the client that processing is delayed or paused and how the workflow will be handled next; do not report success before recovery.
  6. Retain the decision. Preserve provider errors, attempted recovery, side-effect state, and the owner decision so the run can be reconstructed.

Cost anomaly

Illustrative routing; no spending threshold or renewal claim is invented.

  1. Observe workflow cost. Cost attributed to a workflow makes a change in spending visible without guessing which client caused it.
  2. Detect the anomaly. Inspect the cost signal with the affected workflow, usage, and output context. These are sample diagnostic fields for the article’s cost-per-workflow signal.
  3. Pause for inspection. Route the affected automation for manual assessment under its configured budget policy.
  4. Assign the cost owner. The named owner inspects the usage trace and decides whether to constrain, correct, or resume the workflow.
  5. Explain the workflow state. Make any service impact and next action understandable to the client team.
  6. Preserve cost evidence. Keep the usage context and the decision with the run so the anomaly is explainable later.

Regression

Illustrative routing of a failed behavior check; no invented incident or service target.

  1. Observe changed behavior. A changed prompt, model, or retrieval path can alter the behavior the workflow depends on.
  2. Surface the failed check. An eval failure or production exception identifies the affected behavior and points to run evidence.
  3. Hold the affected path. Pause or route the affected workflow for human handling while the regression is investigated.
  4. Assign the engineering owner. The owner receives the failing case and version context, then determines the correction and validation needed.
  5. Show the client what changed. State that the affected automation is paused and identify the available manual workflow.
  6. Keep the regression trace. Preserve the case, version context, owner decision, and outcome for diagnosis and future evaluation.

1 / 3 · Observe the result

Speed
TakeawayAn exception needs detection, a named owner, a client-visible state, and enough evidence to reconstruct the run.
Try it yourself

Decide what happens after the failure

Exercise a sample runbook by changing the failure, recovery conditions, and handoff. Retry eligibility is conditional; this widget does not assume a provider switch or retry succeeds.

Observed failure
Known downstream effects
Recovery policy permits retry
Detected signalUpstream call failed
Selected routeInspect unknown state
Not selectedReconcile existing effect
Not selectedControlled retry
Not selectedManual lane
Inspect before attempting recovery. The first attempt may already have changed downstream state. Reconcile the trace before deciding whether a retry is safe.
Assigned incident owner
Client-visible state
Ownerunassigned
Client statusNo visible explanation
Evidence to retainRun identity · error · known effects · recovery decision

Handoff gaps: Assign an incident owner. Publish a client-visible workflow status.

Inspect why “just retry” can be wrong

Unknown side effects require inspection. A committed side effect requires reconciliation, not blind repetition. Only a provider failure with confirmed no effects and a policy allowing retry reaches the retry lane here. Cost anomalies and regressions pause for manual assessment under their own policies.

Owner assignment and communication make the pause operable. They do not prove safety or authorize a broader action. This runbook has no invented incident dates, spending thresholds, or service targets.

Day-90 runbookWhat I want in place before the client stops watching the demo

Owner: named person or team for workflow errors, model regressions, provider incidents, and cost anomalies.

Signals: eval pass rate, exception queue size, latency p95, cost per workflow, failed tool calls, and unresolved customer-visible errors.

Fallbacks: manual lane, retry policy, degraded mode, provider switch criteria, and the message users see when automation pauses.

Client handoff: where they inspect a run, correct an exception, export evidence, and decide whether engineering needs to be called.

The point is not ceremony. It is making support boring before volume makes support expensive.
Source trailWhat this post is in conversation with
  • The Principles of Production AIDescribes the eval, guardrail, orchestration, and observability work required to move an AI system past a pilot.
  • Datadog LLM guardrails best practicesCovers runtime validation, sensitive-data handling, tool misuse, and monitoring the guardrails themselves.
  • Implementing SLOsThe SRE framing is useful here: production trust comes from explicit service targets and agreed policies, not reassuring language.

The trap

At signing time, two vendors can produce similar demonstrations while only one has retries, idempotency, observability, fallbacks, and an eval suite. The difference may remain invisible until volume grows or a provider has a bad day. Building that operational layer before the client can see its value requires judgment about the failures likely to arrive later.

I use "boring" for a system whose common failures already have owners, signals, and recovery paths. The client's ops team can inspect an anomaly and correct it without turning each one into an engineering incident. Reaching that point takes work that the original demo does not show.

A strong demo still matters because the model can do work worth showing. After the contract, the client lives with the runbook, exception queue, and monthly bill. Those are also what an existing customer will discuss when a prospect asks them for a reference.

End of entry

Keep track of what you have read.

Discussion