Skip to content

[finding] registerSharingEndpoints / respondSharingError still answers the bare-string error dialect (ADR-0112) — the sharing half split out of #8073 #8111

Description

@hotlong

Split out of #8073 at triage (2026-08-12), per the domain:cli seat's serial/split analysis on that card (comment 5269022297): the explain pair and the /sharing/* family are different blast radii, and this half carries a question the explain half does not.

Fact (inherited from #8073's measurement — re-verify at claim)

registerSharingEndpoints's single emitter respondSharingError in packages/rest/src/rest-server.ts answers { code, error: msg.replace(...) } — a bare-string error — feeding 400 / 403 / 404 / 409 / 422 across the whole /sharing/* family. body.error.code, the one position ADR-0112 D5 declares, reads undefined on all of them.

Why this is held as a finding rather than queued

The envelope convergence itself is implementation of the settled ADR-0112 D5 ruling. But this emitter carries a second, unrelated protocol: msg.startsWith(CODE) — the error code is recovered by parsing the message text. Whether that string-prefix protocol survives (kept alongside the D5 envelope) or is retired with it must be ruled before dispatch, not during it — retiring it silently changes what programmatic consumers can read.

Also inherited scope notes from #8073:

Promotion path: at the findings round, either (a) the prefix-protocol question goes to the maintainer and this queues after the ruling, or (b) if a measured consumer census shows nothing reads the prefix, it collapses into a plain convergence card.

Provenance: #8073 (measurement record), PR #8071 / #7981 (the pattern to follow), #7035 / PR #7293 (the dialect retirement).

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions