Filed by the dev on #8333 while landing the P6–P13 producer sweep (PR #8436). Unassigned; nobody is on it. Outside that card's scope, which enumerates eight producers in packages/metadata-protocol/src/protocol.ts.
The site
packages/runtime/src/domains/packages.ts, ~line 381 — the runtime package door's fallback when the protocol did not already produce a seedApplied:
}catch(e: any){(resultasany).seedApplied={success: false,error: e?.message??'seed apply failed'};}Structurally identical to #8333's P9 (applySeedBodies' error), which PR #8436 has now converted inside metadata-protocol. Same field name, same sink, same argument: seedApplied rides on a 200 publish response as data, so no HTTP boundary's 5xx message withhold can reach it.
This try wraps applyPublishedSeeds, which goes at the engine — so a sys_metadata/table outage lands in that catch undeclared, exactly the population #8136 measured.
Status of the evidence
Read from source, NOT reproduced end to end. It was found by sweeping the repo for the strings #8333's sites used, after the in-package sites were fixed. Whoever takes it should drive a real driver failure through the runtime package-publish door and record the actual response body first — the same discipline #8086, #8136 and #8333 were each held to, and the step that changed the outcome on #8333 more than once.
The fix, if the premise holds
The same rule, already implemented next door: quote the caught sentence only when the error declared a 4xx status (ADR-0112), otherwise a stable sentence with the original sent to the log. ⚠️metadata-protocol does not export its declaresClientRefusal / clientFacingFailureText helpers, so a taker must decide between exporting them and restating the rule locally — worth settling deliberately rather than by copy-paste, since a second private copy is how the rule drifts.
Related
#8333 (the metadata-protocol producers, PR #8436) · #8136 · #8086
Generated by Claude Code
Filed by the dev on #8333 while landing the P6–P13 producer sweep (PR #8436). Unassigned; nobody is on it. Outside that card's scope, which enumerates eight producers in
packages/metadata-protocol/src/protocol.ts.The site
packages/runtime/src/domains/packages.ts, ~line 381 — the runtime package door's fallback when the protocol did not already produce aseedApplied:Structurally identical to #8333's P9 (
applySeedBodies'error), which PR #8436 has now converted insidemetadata-protocol. Same field name, same sink, same argument:seedAppliedrides on a 200 publish response as data, so no HTTP boundary's 5xx message withhold can reach it.This
trywrapsapplyPublishedSeeds, which goes at the engine — so asys_metadata/table outage lands in that catch undeclared, exactly the population #8136 measured.Status of the evidence
Read from source, NOT reproduced end to end. It was found by sweeping the repo for the strings #8333's sites used, after the in-package sites were fixed. Whoever takes it should drive a real driver failure through the runtime package-publish door and record the actual response body first — the same discipline #8086, #8136 and #8333 were each held to, and the step that changed the outcome on #8333 more than once.
The fix, if the premise holds
The same rule, already implemented next door: quote the caught sentence only when the error declared a 4xx⚠️
status(ADR-0112), otherwise a stable sentence with the original sent to the log.metadata-protocoldoes not export itsdeclaresClientRefusal/clientFacingFailureTexthelpers, so a taker must decide between exporting them and restating the rule locally — worth settling deliberately rather than by copy-paste, since a second private copy is how the rule drifts.Related
#8333 (the
metadata-protocolproducers, PR #8436) · #8136 · #8086Generated by Claude Code