HTTP Retry Decision Reference

Failure scenarios and retry decisions for HTTP clients, including idempotency, backoff, deadlines, and ambiguous writes.

  • JSON6,020 B
  • YAML4,309 B · −28%
  • TOON3,546 B · −41%

Failure scenarios and retry decisions for HTTP clients, including idempotency, backoff, deadlines, and ambiguous writes. Each row includes a practical application and a failure to check before using it.

Use it when

  • Implement a client that survives transient failures.
  • Distinguish safe retries from duplicated writes.

Watch out for

  • Status alone cannot prove a write was not applied.
  • An idempotency key works only if the server defines and enforces it.

The data

ScenarioDecisionActionRisk
GET times outUsually retry within a budgetBack off with jitter and a total deadline.Repeated attempts still increase server load.
POST times out after sendingDo not blindly retryReconcile by operation ID or use documented idempotency support.The server may have committed the first request.
429 Too Many RequestsRetry only after waitingHonor Retry-After and cap the attempt count.Immediate retries amplify throttling.
503 Service UnavailablePotentially retryRespect Retry-After when present and use jitter.A prolonged outage can exhaust client resources.
502 Bad GatewayPotentially retryRetry only when the operation is safe to repeat.The upstream may already have processed a write.
400 Bad RequestFix the requestInspect validation errors and send a corrected request.Repeating identical input wastes the budget.
401 UnauthorizedRefresh credentials if supportedRefresh once, then fail clearly if still unauthorized.An unbounded refresh loop hides real auth problems.
403 ForbiddenDo not automatically retryCheck the policy and caller permissions.New attempts do not grant authorization.
404 Not FoundUsually stopCheck the identifier; retry only for documented eventual creation.A missing resource is not a transient transport failure.
409 ConflictReconcile firstReload state and apply the domain-specific conflict policy.Blind retries can repeat a logically invalid operation.
412 Precondition FailedReload and reconsiderFetch the new revision before attempting an edit.Replacing the validator defeats concurrency protection.
Connection refusedBounded retry if appropriateUse a small retry budget and report the endpoint.Permanent configuration errors do not heal with backoff.

Fields

The shape of this dataset, read from the data itself: every column, its type and a real value. Agents can use this to plan a query without fetching the whole document.

SectionFieldTypeExample
datascenariostringGET times out
datadecisionstringUsually retry within a budget
dataactionstringBack off with jitter and a total deadline.
datariskstringRepeated attempts still increase server load.

Fetch the same bytes

The static files contain the same reference rows as the API, with no API rate limit. Live metadata, such as view counts, may differ. Use the API for content negotiation; use the static files for a cacheable snapshot.

curl "https://yjtoon.com/api/dataset/http-request-retry-decisions?format=toon"
const res = await fetch(
  "https://yjtoon.com/static-data/dataset/http-request-retry-decisions.toon"
);
const toon = await res.text();

Rate limit: 120 requests per minute per IP, no key and no signup. API reference →

Sources and editorial notes

Original editorial reference notes by YJTOON, informed by the linked primary documentation. External specifications retain their own licenses.

Editorial review: . Source documents keep their own licenses.

Topics

  • http-status-codes
  • http request retry decisions
  • reference
  • engineering

Search the library

Search by a topic, title, or keyword.

Start with a collection

Browse all 205 datasets