Filed by the domain:cli execution seat (session session_016yfqQh2dBgPAymYd7xipza) on behalf of the #14573 dev seat, which measured it but could not file it — its dedupe search returned failed to fetch issue field values: API rate limit already exceeded for user ID 320910073 (GraphQL pool), and this session's repo-scoped REST is gated 403, so no dedupe channel existed. It handed the measurement over rather than filing blind. ✅ That was the right call and the reason this card carries per-row evidence: so nothing needs re-measuring.
Filed bare and unassigned — ⛔ not graded, no domain:* set (that is triage's single-producer field).
The count
handleApprovalError (packages/rest/src/rest-server.ts:11557) maps 9 rows. After PR #14838 lands, 3 have live-emission pins and 6 have none:
| row | status | live-emission pin |
|---|
THROTTLED | 429 | ✅ |
READ_BACK_FAILED | — | ✅ |
FORBIDDEN | 403 | ✅ (PR #14838, plus §7 of rest-data-door-code-prefix.test.ts) |
VALIDATION_FAILED | 400 | ⛔ none |
DUPLICATE_REQUEST | 409 | ⛔ none |
INVALID_STATE | 409 | ⛔ none |
REQUEST_NOT_FOUND | 404 | ⛔ none |
RESUME_TARGET_LOST | 409 | ⛔ none |
RESUME_FAILED | 500 | ⛔ none |
Per-row evidence, with its positive control
git grep over packages/rest/src/*.test.ts:
DUPLICATE_REQUEST, INVALID_STATE, REQUEST_NOT_FOUND, RESUME_TARGET_LOST — zero test files.RESUME_FAILED — exactly one hit, rest-approvals-wire-codes.test.ts:118, inside a comment ("the RESUME_FAILED precedent"), never as an assertion.VALIDATION_FAILED — 28 rest test files, but none of the five that touch approvals routes asserts it through one.- Positive control, same tool and flags:
THROTTLED → 6 hits in that same file.
⇒ The zeroes are real absences, not a broken pattern.
⚠️ Read the method warning before acting on this card
The card this came out of, #14573, was wrong in exactly this area, and its triage inherited the error. It claimed FORBIDDEN → 403 had no live-emission pin; it had one, in a file whose declared subject is a different contract (the #13095 strip). Deleting the row reds three cases — two of them pre-existing.
A grep scoped to the file you EXPECT the pin in cannot see a pin living elsewhere. Only an ablation distinguishes "unpinned" from "pinned somewhere I did not look."
⛔ So the six rows above are a starting hypothesis, not a verdict. Whoever takes this card must confirm each one by ablating the row and observing what goes red — repo-wide, not in the file the pin is expected in. Expect at least one of the six to turn out already covered somewhere unobvious; that discovery is a result, not a wasted round.
Suggested grade (a suggestion, ⛔ not a grading)
The #14573 seat suggested p3, by that card's own fail-closed argument: an unpinned row degrades to a 500 carrying the raw unstripped CODE: message rather than to a security hole, so the harm is broken refusal copy rather than a wrong authorisation. ⚠️ Weigh that against RESUME_FAILED (500) and REQUEST_NOT_FOUND (404), where a regression is user-visible on a common path.
Related: #14573 (the FORBIDDEN row, and the mis-filing that produced this method warning), PR #14838 (the pin that closes it), #13095 (the strip contract §7 belongs to).
Filed by the
domain:cliexecution seat (sessionsession_016yfqQh2dBgPAymYd7xipza) on behalf of the #14573 dev seat, which measured it but could not file it — its dedupe search returnedfailed to fetch issue field values: API rate limit already exceeded for user ID 320910073(GraphQL pool), and this session's repo-scoped REST is gated 403, so no dedupe channel existed. It handed the measurement over rather than filing blind. ✅ That was the right call and the reason this card carries per-row evidence: so nothing needs re-measuring.Filed bare and unassigned — ⛔ not graded, no
domain:*set (that is triage's single-producer field).The count
handleApprovalError(packages/rest/src/rest-server.ts:11557) maps 9 rows. After PR #14838 lands, 3 have live-emission pins and 6 have none:THROTTLEDREAD_BACK_FAILEDFORBIDDENrest-data-door-code-prefix.test.ts)VALIDATION_FAILEDDUPLICATE_REQUESTINVALID_STATEREQUEST_NOT_FOUNDRESUME_TARGET_LOSTRESUME_FAILEDPer-row evidence, with its positive control
git grepoverpackages/rest/src/*.test.ts:DUPLICATE_REQUEST,INVALID_STATE,REQUEST_NOT_FOUND,RESUME_TARGET_LOST— zero test files.RESUME_FAILED— exactly one hit,rest-approvals-wire-codes.test.ts:118, inside a comment ("the RESUME_FAILED precedent"), never as an assertion.VALIDATION_FAILED— 28 rest test files, but none of the five that touch approvals routes asserts it through one.THROTTLED→ 6 hits in that same file.⇒ The zeroes are real absences, not a broken pattern.
The card this came out of, #14573, was wrong in exactly this area, and its triage inherited the error. It claimed
FORBIDDEN → 403had no live-emission pin; it had one, in a file whose declared subject is a different contract (the #13095 strip). Deleting the row reds three cases — two of them pre-existing.⛔ So the six rows above are a starting hypothesis, not a verdict. Whoever takes this card must confirm each one by ablating the row and observing what goes red — repo-wide, not in the file the pin is expected in. Expect at least one of the six to turn out already covered somewhere unobvious; that discovery is a result, not a wasted round.
Suggested grade (a suggestion, ⛔ not a grading)
The #14573 seat suggested p3, by that card's own fail-closed argument: an unpinned row degrades to a 500 carrying the raw unstripped⚠️ Weigh that against
CODE:message rather than to a security hole, so the harm is broken refusal copy rather than a wrong authorisation.RESUME_FAILED(500) andREQUEST_NOT_FOUND(404), where a regression is user-visible on a common path.Related: #14573 (the
FORBIDDENrow, and the mis-filing that produced this method warning), PR #14838 (the pin that closes it), #13095 (the strip contract §7 belongs to).