Corrections

This is the newest record of its correction, and its words are the ones the corrections log carries.

24 Aug 2026

corr_2026-08-24_002 · resolved · Restates corr_2026-08-24_001

Claim

Nobody raised this. We found it in our own archive: probe402 sent these two endpoints a POST with NO REQUEST BODY, and then published the endpoints' rejection of that malformed request as an observation of the endpoints' state. It is the artefact 402index reads as `degraded` across 61% of MPP, reproduced by us, in our own record.

Finding

Measured 2026-08-24 against captures taken 2026-08-21T08:00:21Z, in the endpoints' own words. ep_5bfb57c12c2b3548 (api.statemind.ai/mcp) answered HTTP 200 with {"jsonrpc":"2.0","id":null,"error":{"code":-32700,"message":"request body is not valid JSON"}} and was graded `Answered, no quote` / R19 [http-200]. ep_46652289eaf2c57b (govlaws.ai/api/mpp/search) answered HTTP 400 with {"error":"invalid_json","message":"Request body must be valid JSON"} and was graded `Answered, no quote` / R19 [http-400]. Both seed rows carry method POST with request_body: null, so the prober sent a bodyless POST on every tick from collector-live onward. Neither grade is a fact about the operator; both are facts about our request. Seven of 29 seed rows share the shape (A8, C2, M1, M2, M3, M4, M5); these two are the ones where the endpoint stated the cause explicitly, so they are the ones this correction scopes. The other five answered in ways that do not establish our request as the cause and are NOT annotated here - an unproven annotation would be its own instrument error. CLOSED 2026-09-08, against the live archive, without writing to it. The fix-forward landed inside the collection cycle t20260824T110000Z: the last row of either endpoint derived from a bodyless POST is 2026-08-24T10:01:33.933Z, and from that cycle onward every row of both endpoints is `Not probed` with sub-code `no-request-body` - 76 consecutive rows each over the week that followed, and four each on 2026-09-07, with no observation between. So the open range this record was filed with has outlived what it was for by fifteen days: it formally annotates rows that already say what it asks them to say.

Remedy

FIXED FORWARD, NOT REWRITTEN. The prober now refuses to send a body-bearing method with no body and records `Not probed` with sub-code `no-request-body` - our gap, on our side of the line, recorded as ours under our published honest-absence rule. No stored observation is edited: the affected rows still say what they said, and this record is how they should be read. NO BODY WAS INVENTED. Our published method permits deriving one from a catalogue input example and there is none to derive from - measured, 402index's rows carry price, network, health_status and latency and no input schema, and the Bazaar row for api.statemind.ai carries prose and no input block. A body we made up would be a guess at another operator's API contract published as a grade of them, which is worse than the defect it replaces because the guess would be invisible in the record while `request body is not valid JSON` is right there in the capture. Restoring these two endpoints to a real series therefore needs an input contract we do not have; until we do, `Not probed` is the honest reading and the series stays absent rather than wrong. THIS RECORD RESTATES ITS PREDECESSOR AND CLOSES ITS RANGE; nothing else about it moves. The claim, the measurement, the annotation and the endpoints are its predecessor s, word for word. What changes is scope.to, which was left null because the collector kept running until the corrected prober was deployed and a date we had not reached would have been a claim we could not make. We have reached it, and the archive says which cycle it was. The predecessor stays served, as filed, at its own address: a correction is appended and never rewritten.

How to read the affected rows

Every observation of these two endpoints in this range was derived from a POST we sent with no request body. The endpoints rejected the REQUEST; they did not report their own state. Read these rows as `Not probed - no-request-body`: an absence of ours, never a grade of theirs. The range CLOSES at the collection cycle t20260824T110000Z, from which both endpoints file that absence themselves - measured against the archive on 2026-09-08 and unbroken since. Rows from that cycle onward need no annotation, because the record already says of itself what this note asks a reader to say of the rows before it.

2 endpoints

The sealed record

The sealed object at object_key is this record with contact_ref restored, written as canonical JSON followed by one newline byte. Canonical JSON is the output of JSON.stringify for the value with every object's keys sorted: no whitespace, UTF-8. On a record raised by probe402, contact_ref is null, so this record with "contact_ref":null added rebuilds the sealed bytes: their SHA-256 and length are sealed_sha256 and sealed_bytes, the entry the manifest of manifest_date lists for object_key.

Object
raw/corrections/2026-10-01/corr_2026-08-24_002.json
Digest
8d021e5bb2b7901b8799a7a4c49ab54782fcabf475b53a808bdb51164c368299
Bytes
4994
Listed in
/chain/2026-10-01

How to dispute a reading →

Corrections →