# docs: correct inaccurate Retry-After term ("timeout" → "delay")

The retry documentation describes the Retry-After header value as a "date, timeout, or timestamp".

| | |
| --- | --- |
| Status | MERGED |
| Source | github:sindresorhus/ky#870 |
| Original | https://github.com/sindresorhus/ky/pull/870 |
| Workspace | Showcase |
| Tags | github, code, docs, typescript |

## What it does

**The change is spread across 2 files in 2 areas, with no single file dominating.**

2 files changed across 2 areas of sindresorhus/ky, 2 added and 2 removed.

The retry documentation describes the Retry-After header value as a "date, timeout, or timestamp".

**Diagram: Where the change landed. Node size is not to scale; the line counts are exact.**

- ky (2 files, 4 lines) [accent]
- Docs (1 file, 2 lines) [neutral]
- Source (1 file, 2 lines) [accent]
- readme.md (+1 −1) [neutral]
- ky -> Docs
- ky -> Source
- Docs -> readme.md : heaviest

- **Heaviest file.** readme.md, +1 −1, which is 50% of the change.
- **No test changed.** 1 source file changed with no accompanying test edit.
- **Spread.** 2 files, 4 changed lines in total.

## How it works

**The largest single edit is in readme.md.**

Quoted verbatim from the diff. This is the biggest hunk by changed lines, which is where a reviewer's attention usually belongs first.

**Diagram: Source files matched to test files by filename. A name-based match, so treat it as a prompt to look rather than as proof.**

- NO TEST CHANGED (1)
  - options.ts (+1 −1) [bad]
- TEST CHANGED TOO (0)
  - no source file paired [bad]

```markdown
@@ -293,7 +293,7 @@ If `retry` is a number, it will be used as `limit` and other defaults will remai
 
 Network errors (e.g., DNS failures, connection refused, offline) are automatically retried for retriable methods. Only errors recognized as network errors are retried; other errors (e.g., programming bugs) are thrown immediately. Use `shouldRetry` to customize this behavior.
 
-If the response provides an HTTP status contained in `afterStatusCodes`, Ky will wait until the date, timeout, or timestamp given in the [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) header has passed to retry the request. If `Retry-After` is missing, the non-standard [`RateLimit-Reset`](https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-05.html#section-3.3) header is used in its place as a fallback. If the provided status code is not in the list, the [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) header will be ignored.
+If the response provides an HTTP status contained in `afterStatusCodes`, Ky will wait until the date, delay, or timestamp given in the [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) header has passed to retry the request. If `Retry-After` is missing, the non-standard [`RateLimit-Reset`](https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-05.html#section-3.3) header is used in its place as a fallback. If the provided status code is not in the list, the [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) header will be ignored.
 
 If [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) header is greater than `maxRetryAfter`, it will use `maxRetryAfter`.
```

_readme.md, +1 −1. The largest hunk in the largest file._

## File map

**Every file this change touches, heaviest first.**

Role is inferred from the path and risk from the path and the line count. Neither was read from the code.

| File | Role | Change | Risk |
| --- | --- | --- | --- |
| `readme.md` | documentation | modified, +1 −1 | none |
| `source/types/options.ts` | application code | modified, +1 −1 | low |

## Receipts

**Where each number above comes from.**

All of it is arithmetic over the file list and the check results, so it can be recomputed from the source.

- **Claim.** 2 files changed, +2 −2.
  - Evidence: readme.md (+1 −1); source/types/options.ts (+1 −1)
  - Where: https://github.com/sindresorhus/ky/pull/870
- **Claim.** readme.md carries 50% of the changed lines.
  - Evidence: 2 of 4 changed lines
  - Where: readme.md
- **Claim.** It arrived as 1 commit.
  - Evidence: docs: correct Retry-After delay term
  - Where: commit 019ee68
- **Claim.** CI reports 0 failing of 3.
  - Evidence: Node.js latest
  - Where: CI check: Node.js latest

## Where to attack

**What the shape of this diff suggests looking at first.**

These come from structure alone: which areas were touched, what was not touched alongside them, and what CI says. None of them is a judgement about the code.

- **Source changed with no test changed** (medium)
  - 1 source file changed and no test file moved with them. Existing tests may already cover this, or they may not; the diff cannot say which.
  - Mitigation: Confirm whether coverage already exists for the changed paths before approving.

## Merge order

**A reading order for the review, not a deployment plan.**

Ordered by how expensive each part is to get wrong, which is a structural property rather than an informed one.

1. **Then readme.md.** The largest single file in the change, +1 −1.
2. **Decide whether a test is needed.** Nothing in this change adds or edits one.

## What this brief could not check

- No language model read this change. Every statement here is computed from file paths, line counts, and CI status, so it describes the shape of the diff and not what the diff means.
- No test file changed, so nothing here is evidence that the change works.
