Why did paid x402 calls answer HTTP 400 in September 2026?
The short answer
Mostly because the paid call carried no inputs and the route needed one. Most of the routes that answered a paid call with a bad-request error declare the missing input in their own payment challenge, as a required field in its schema or in its example call.
As published in the issue
The missing input was usually in the challenge. 132 routes answered a paid call with HTTP 400 (486 calls). 126 of them declare the missing input in their own payment challenge — 94 mark it required in the challenge's schema, 32 carry it in the example call.
(3) The PANEL population: the 400 x402 routes on the published paid panel drawn on 6 September, called once a week with one fixed request carrying no inputs; every paid figure describes those calls and the order in which each route handled and settled them, never a delivery rate.
Because the paid panel sent no inputs, it does not establish how these 132 routes would answer a request carrying every declared input.
The sentence above is quoted from a published issue and is not re-written here. Its date, its population and the record behind it are below.
Why it matters
A missing input the challenge declares is the buyer's omission, not the seller's failure to deliver. A failure rate that counts it against the seller is measuring the buyer's request.
What we measured
The published paid panel, called once a week through September with one fixed request carrying no inputs, with each bad-request answer set beside the payment challenge the same route publishes. The exact population rule is quoted beside the figure below, and the limits that bound it beneath.
What the evidence shows
- Sealed days behind the archive figures
- 27
- Observations in that window
- 315,315
- Issue
- Machine Commerce Reality Index: #002 — September 2026
- Published
2026-09-04 · 2026-09-05 · 2026-09-06 · 2026-09-07 · 2026-09-08 · 2026-09-09 · 2026-09-10 · 2026-09-11 · 2026-09-12 · 2026-09-13 · 2026-09-14 · 2026-09-15 · 2026-09-16 · 2026-09-17 · 2026-09-18 · 2026-09-19 · 2026-09-20 · 2026-09-21 · 2026-09-22 · 2026-09-23 · 2026-09-24 · 2026-09-25 · 2026-09-26 · 2026-09-27 · 2026-09-28 · 2026-09-29 · 2026-09-30
27 of the 27 sealed days behind these figures are on the head table at /chain (9 re-derived from an off-vendor replica and 18 anchored from the archive as stored). Each day's manifest is served at /chain/<date>.
What this does not say
- What the record establishes is about request handling and settlement order, not a delivery rate.
- Because the paid panel sent no inputs, it does not establish how these 132 routes would answer a request carrying every declared input.
Method and reproduction
The runs behind the figures, the record each one produced, and the terms this question uses.
What ran, when, and the record it produced.
| What ran | When | Record |
|---|---|---|
| The paid outcomes on the published panel: for every route called in September, what came back on each weekly call, whether and when a payment settled, whether the response named the transaction, and the terms quoted at call time against the terms drawn. | 1cb85af4060afcd3358d4dc024c7bc2dd58fed3c64d98b17140fc2de5f2698da | |
| The request shape behind every paid-call error on the September panel: each attempt joined to its settlement receipt, to the chain reading of its payment, and to the input its own payment challenge declared, so an error can be classed as our incomplete request or as the seller's. | efc91699a56c5eacc3b8efe3bf2a05247260ad6766adb28dd5ee775025354cff |
The terms
The terms this question uses are defined in the glossary.
Corrections and disputes
Corrections to this issue are on the corrections register, and this answer reads from the record rather than from a copy.