AI Engineering
11 min read

When the Model Fails: An AI Degradation Ladder

A practical failure ladder for deciding when an AI service should retry, reduce scope, switch to deterministic logic, queue human review or stop.

When the Model Fails: An AI Degradation Ladder
AI Engineering / 11 min read
AIENGINE

11 min read

Share

An AI feature can fail while every server remains online. The model may time out, hit a capacity limit, return a structurally valid but unusable answer, lose the evidence it needs, or propose an action outside its authority. A generic “try again” handler treats these different conditions as one technical fault. That is how a small dependency problem becomes duplicate work, a growing queue or a confidently wrong customer outcome.

Graceful degradation asks a more useful question: what is the safest valuable service this product can still provide under this specific failure? Sometimes the answer is a cheaper model or a shorter response. Sometimes it is a deterministic rule, a saved draft, a visible human queue or no action at all.

This guide turns that choice into a failure ladder. It is for teams designing an AI-assisted workflow, not only infrastructure engineers operating an API. Reliability here is a product policy: the business must decide which promises can be reduced, which decisions can wait and which actions must stop.

Degradation is not the same as retrying

A retry attempts the same operation again because the fault is expected to be temporary. Degradation changes the service being offered so that the system does less work, assumes less authority or makes a narrower promise.

Google's Site Reliability Engineering guidance defines graceful degradation as reducing the work needed to serve a request. Its examples trade some response quality for lower computational cost under overload. The same mechanism applies to AI, but model-backed products add a second dimension: a response can be cheap and available yet not trustworthy enough for its intended use.

Our operating interpretation is therefore broader than load shedding. An AI service should degrade when any dependency required for a safe outcome is unavailable: model capacity, approved context, a policy rule, a tool, an audit trail or competent review. The trigger is not “the model is down.” It is “the evidence or control behind this service promise is missing.”

That makes degradation part of the full production AI cost stack. Manual capacity, queue reconciliation, secondary providers and failure testing all cost money. Omitting them does not remove the cost; it makes the first outage discover it.

Classify the failure before choosing the response

Start with five failure classes. They require different signals and should not share one catch-all fallback.

Failure classObservable evidenceWhy a blind retry is unsafeSafer first response
TransportConnection reset, timeout before a response, provider 5xxThe original request may still have completed, especially if it invoked a toolRetry only an idempotent operation within a bounded time budget
CapacityRate limit, overload response, exhausted concurrencyImmediate retries add load and can prolong the incidentHonour provider timing, shed low-priority work and open a circuit when thresholds persist
QualityInvalid schema, missing citation, failed evaluation rule, low task-specific scoreRepetition can produce a different answer without making it more reliableReduce scope, request missing evidence or route to review
ControlPermission denied, policy block, unavailable approval service, action outside limitA retry cannot create legitimate authority and may look like bypass behaviourPreserve the request and fail closed before the action
ObservabilityMissing trace, unknown model version, lost tool result, stale source timestampThe team cannot reconstruct what happened or distinguish success from failureStop consequential automation and move to a visible exception queue

Provider status codes help with the first two classes, but they are not a complete business policy. OpenAI's current error-code documentation distinguishes rate limits and temporary server overload from billing, spend and usage-limit errors that require operator action. Anthropic similarly documents 429 rate limits, 5xx errors, timeouts and a 529 overload condition, while permission, request-format and billing errors have different meanings.

The important boundary is between *transient* and *action-required*, not between “error” and “success.” A 200 response with an invalid invoice total belongs to the quality class. A 403 belongs to control. Neither becomes safe because another sample might work.

Define the service ladder before the incident

A degradation ladder gives the runtime an approved lower rung instead of asking an on-call engineer to invent one under pressure.

RungService promiseAppropriate useProhibited shortcut
1. Full serviceEvaluated model, approved context and tools operate inside normal limitsAll health, quality and control signals are presentTreating provider availability as proof of output quality
2. Reduced AISmaller scope, shorter context, cheaper model or read-only toolsThe reduced mode has its own evaluation and disclosureQuietly switching to an unevaluated provider or region
3. Deterministic fallbackRules, templates, cached approved facts or ordinary software complete a narrower taskThe rule can make the promise without model judgementPresenting stale or partial content as current and complete
4. Human queueInput and evidence are preserved for authorised reviewDelay is safer than an uncertain decisionBuilding an unbounded queue with no owner or response target
5. Fail closedNo consequential action occurs; the user receives an honest status and recovery routeAuthority, evidence, safety or reversibility is absentReturning a plausible success message while work was dropped

Each rung needs an explicit entry trigger, exit test, owner, maximum duration and user message. Reduced AI is not automatically safer: a smaller model can have different refusal, language or extraction behaviour. A secondary provider can move data to another jurisdiction or retain it differently. Evaluate each rung as a release package using the same discipline as AI model change control.

The ladder should also follow consequence. A marketing draft may move from full service to a template. A payment release should stop when the approval or audit service is unavailable. “Always available” is not a credible objective when the remaining path cannot lawfully or safely complete the action.

Bound retries with deadlines, jitter and idempotency

HTTP already provides a useful coordination signal. RFC 9110 defines Retry-After as either a date or a number of seconds to wait; a service can send it with 503 to suggest when a temporary overload may ease. OpenAI's rate-limit guidance says custom clients should honour a valid Retry-After value, otherwise use exponential backoff with jitter, while limiting both attempts and total retry time. It also warns that SDKs may already retry, so adding another loop can multiply attempts.

Set one end-to-end deadline from the user's perspective, then allocate smaller budgets to model, retrieval and tool calls. Three retries of a 20-second model call do not fit a 30-second interaction. When the deadline is spent, move down the ladder; do not keep invisible work alive after the user has reasonably acted again.

State-changing operations need another boundary: the system must know whether the first attempt took effect. Stripe's idempotent-request design illustrates the principle: a unique key lets the server recognise a repeated create or update request and return the original result rather than perform the operation twice. An AI workflow should generate the operation identity before calling the model or tool and preserve it through retries, queues and recovery.

Idempotency prevents duplicate execution; it does not reverse a valid but unwanted action. Before granting tool authority, label every step as read-only, idempotent, compensable or irreversible. That label should constrain which rung is available.

Use two circuit breakers, not one

A technical circuit breaker protects the application and its dependency from repeated calls during a persistent fault. Microsoft's Circuit Breaker pattern separates three states: closed calls the dependency, open fails immediately, and half-open permits limited probes to test recovery. This differs from retry: retry expects eventual success, while a breaker stops calls that are unlikely to work.

An AI product also needs a business breaker. It opens when the service is technically responsive but the output cannot support the intended promise. Triggers might include:

  • source coverage below the approved minimum;
  • a required policy or price list older than its validity window;
  • schema-valid outputs failing a reconciliation rule;
  • unusual growth in human overrides or downstream reversals;
  • loss of the request, model, source or tool identifiers needed for audit; or
  • reviewer queue age exceeding the point at which the decision remains useful.

Keep the breakers separate. The technical breaker may route a summarisation request to an evaluated secondary model. The business breaker may forbid that route for a regulated decision because the secondary mode lacks the required evidence. A single global “AI healthy” flag cannot express that difference.

Recovery should be cautious. Half-open traffic must be small enough not to recreate overload, and business recovery needs representative quality checks rather than a successful health endpoint. Record every state transition and manual override in the AI assurance evidence pack.

Treat partial actions as a reconciliation problem

Agentic workflows can complete step one and fail at step two. A model may prepare a supplier record, a tool may create it, and the response may disappear before the workflow stores confirmation. Retrying the whole sequence can create a duplicate; assuming failure can leave an unmanaged record.

Microsoft's Compensating Transaction pattern explains why distributed work cannot always be restored by copying old state over new concurrent changes. The workflow must record each completed step and its business-specific undo or correction action. Some steps are irreversible, and compensation can itself fail.

For every consequential tool call, retain:

  • one operation and correlation identifier;
  • the intended action, parameters, actor and authority;
  • preconditions checked immediately before execution;
  • the tool's response and external record identifier;
  • whether the result is confirmed, unknown, failed or compensated;
  • the permitted reconciliation or compensation action; and
  • the person authorised to resolve an ambiguous state.

An unknown result should not be collapsed into “failed.” Give it a separate state that blocks a repeat until the external system is queried by operation identity. This is where a practical AI agent control room needs a ledger of real actions, not only a transcript of model messages.

Worked example: invoice intake without duplicate posting

Consider a hypothetical invoice-intake workflow. This is a design example, not a claim about a deployed AIEngine system. Email capture stores the original file. A model extracts fields and supporting evidence. Deterministic checks match supplier identity, purchase order, currency and totals. An authorised tool may then create a draft payable entry; payment release remains outside the model's authority.

ConditionLadder decisionUser-visible resultRecovery evidence
Model overloaded before extractionRetry once within the intake deadline, then rung 4“Received; awaiting processing”Original file, provider error, retry timing and queue item
Extraction succeeds but totals do not reconcileRung 4, no repeat sampling“Needs accounts review”Extracted fields, source locations and failed rule
Preferred model is unavailable; evaluated read-only model is healthyRung 2 for extraction only“Processed with review required”Fallback version, evaluation scope and forced review flag
Draft-create call times out after dispatchUnknown state; query by operation ID“Confirmation pending”Idempotency key, request ID and eventual external record ID
Approval or audit service is unavailableRung 5 before posting“Cannot post safely; saved for later”Control outage, preserved draft and named queue owner

The value of this table is not the particular invoice rules. It is the separation of receipt, extraction, validation, draft creation and release. Degradation narrows authority at each boundary. It does not invent confidence by asking the model again.

Exercise the path that is meant to save you

NIST's AI Risk Management Framework says post-deployment monitoring should include override, incident response, recovery and change management, and that processes for tracking and recovering from incidents and errors should be documented. A diagram of a fallback is not evidence that it works.

Test the ladder under realistic failure combinations:

  • Inject rate limits, long tail latency, malformed output and mid-stream disconnects separately.
  • Remove a required source, permission service, tool response and trace sink while the model stays online.
  • Replay state-changing requests with the same and different operation identifiers.
  • Hold the circuit open long enough to measure queue growth, manual throughput and user behaviour.
  • Recover through half-open traffic, reconcile every unknown action and verify that no reduced-mode item escaped its review flag.

Google's SRE guidance warns that rarely used degradation code is likely to fail and recommends exercising it deliberately. The same test should measure business outcomes, not only API health.

Measure useful service, not fallback activity

Track the share of requests on each rung, entry reason, time to recover and transitions that were manually overridden. Then connect those operational measures to accepted outcomes:

  • completion and abandonment by rung;
  • quality-rule failures and reviewer agreement;
  • duplicate, unknown and compensated actions;
  • oldest queue item and sustainable human throughput;
  • users shown an accurate degraded-mode message;
  • breaches of the end-to-end deadline; and
  • cost per accepted outcome in normal and reduced modes.

Revisit the ladder after a model, prompt, corpus, tool, permission, provider, user promise or workflow change. Retire a fallback when its model version, contract, data path or human capacity is no longer dependable.

The durable objective is not to make every AI interaction return something. It is to preserve the most useful honest service the system can still support—and to stop before availability theatre becomes an irreversible mistake.

TaggedAI ReliabilityGraceful DegradationCircuit BreakersRetry PolicyHuman ReviewIncident Response
Work With Us

Interested in implementing this for your business?

We help UK businesses put these ideas into practice. Book a call to discuss your specific situation.