Skip to content

Stop emitting free-form analytics error subreason #429

Description

@shiny-code-bot

Objective

Remove the free-form codex_error_subreason analytics payload copied from invalid-request text so provider responses or user-derived content are not emitted through this telemetry field. Preserve useful structured error categorization without retaining the raw bounded string.

Finish Line

Codex Lab no longer populates or serializes codex_error_subreason; focused analytics tests prove the field is absent while structured error facts and unrelated telemetry remain intact.

Current Status

State: Completed.
Merged: PR #472 at 82ffbe8cae7dc68a400ea5d4f29f7bcd42b18c8f on July 25, 2026.
Result: the free-form analytics error subreason is removed from main; all 9 PR checks passed, and PR #465's upstream candidate already carries the same privacy behavior.
Blocked by: none.
Next action: none; #429 no longer blocks #343.

Scope

  • In: analytics fact/event/reducer field removal; fixture and serialization updates; privacy-focused regression coverage; convergence-contract entry in Define Every Code-owned convergence contracts #126.
  • Out: unrelated analytics schema redesign, retention policy changes, or wholesale telemetry renaming.

Acceptance Criteria

  • Remove the free-form subreason field from analytics fact construction, event serialization, and reducer plumbing.
  • Remove the 512-byte invalid-request text copy and its now-unused helper/constant.
  • Preserve structured error kind/category reporting.
  • Add focused tests proving invalid-request body text is not emitted.
  • Verify the fix on current main and carry the same contract into Build upstream snapshot integration and canary branch #428's upstream candidate.
  • Pass PR Remove free-form analytics error subreason #472's repository checks and merge the fix.

Relationships

Validation

Decisions

  • Treat this as a privacy fast-track rather than waiting for the full upstream convergence candidate.
  • Preserve structured diagnostics; remove only the free-form text field.

Open Questions

  • None currently.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    planDurable planning issueplan:donePlan completed or superseded

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions