fix(telemetry): keep -32603 recovery failure generically fail-closed; document auth-required unreachability (#101) #102
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
P1
P2
P3
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Creatidy/scarcity-router!102
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/telemetry-auth-required"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #101 by explicit audit decision: the
telemetry_auth_requiredvocabulary stays deliberately UNREACHABLE — no structured auth discriminator exists in codex 0.154.0 (companion: Infrastructure/creatidy-autonomy#50).Correction (second commit,
2293c89)The first iteration emitted
auth_requiredafter a failed bounded refresh/retry. Owner review correctly challenged that-32603proves authentication failure. Source audit of pinned codex 0.154.0 (codex-rs/app-server/src/error_code.rs,request_processors/account_processor.rs) confirms the concern:error()constructs everyJSONRPCErrorErrorwithdata: None— only the integercodeand free-textmessageexist, and free-text parsing is forbidden by the security contract.get_account_rate_limits_responsemaps EVERY backend failure to the sameinternal_error(-32603): expired-token 401, 403, 5xx, timeout, empty snapshot. A failed refresh/retry does not distinguish auth from outage.get_account_responsediscards the refresh outcome (refresh_token_if_requested(...)is fire-and-forget) — no error envelope ever carries refresh failure. Live probe (2026-09-20) matches:account/read {refreshToken:true}returned a result even though the retry then still failed-32603.Resulting behavior (this PR's final state): failed refresh or failed retry →
unknown/telemetry_unknown→ eligibilityunknown/telemetry_invalid— the pre-#102 fail-closed classification. Mislabeling a backend outage as auth-required would have caused pointless device-auth re-logins; accuracy was chosen over making the vocabulary reachable.The one code-level auth-adjacent signal,
-32600("…authentication required to read rate limits") for a missing/unusable local store, is unsafe as a discriminator (-32600also covers unrelated invalid-request conditions, it is not the evidenced expired-token shape, and D-018 never refreshes on it).What remains in this PR
docs/decisions.mdrecording the audit, the evidence, and the exact conditions under whichtelemetry_auth_requiredmay become reachable (a future codex generation with typed errordataor a dedicated auth error code).autonomy-openai-maintain.prdexit 4 =auth_required(creatidy-autonomy#50/#51).Validation
make check: 1183 tests OK (unittest discovery), basedpyright 0 errors / 0 warnings.Merge branch 'develop'commit that appeared on the shared checkout during the review window (clean merge of owner-merged develop content, PRs #100/#103); it was kept rather than force-pushed, per the repository's no-history-rewrite rule.fix(telemetry): classify evidenced Codex auth failure as auth_required / telemetry_auth_required (#101)to fix(telemetry): keep -32603 recovery failure generically fail-closed; document auth-required unreachability (#101)