Skip to content

tracking(OpenAI Responses): reproduce storeless replay and strict state/stream regressions in GitHub Actions #90657

Description

@snowzlm

Summary

This tracking issue collects OpenAI Responses-compatible provider regressions with GitHub Actions-backed reproduction evidence related to #89728 or adjacent Responses payload/state/stream normalization boundaries.

This issue does not claim that every cited issue shares the same root cause. It records what is reproduced, what is only narrowly reproduced, and what was removed after repeat retesting.

Root issue

Root condition:

explicitStore === undefined
shouldStripStore === true

Current replay gating allows replay when payloadPolicy.explicitStore !== false, even when effective store support is stripped.

GitHub Actions evidence

Fixture/source baseline

Direct OpenClaw code-path reproduction

Strict repeat retest for removal

Gap closure retest

Formal reproduction matrix

Issue Formal scope Actions result Classification
#89728 storeless custom Responses provider replays prior item ids reproduced; before/after patch simulation preserves call_id pairing same-root/code-path-repro
#89531 multiple final_answer stream items survive into visible projection as repeated incremental content reproduced through processResponsesStream + extractAssistantVisibleText sibling-stream-normalization/code-path-repro
#90570 invalid Responses item type "" reaches an Azure-style strict schema validator reproduced through buildOpenAIResponsesParams + expanded validator sibling-strict-provider/code-path-repro
#84002 encrypted reasoning continuation state can be serialized into a follow-up Responses request reproduced narrowly; Slack empty-session routing was not reproduced and is not claimed sibling-state/code-path-repro
#84484 replay-enabled serializer can emit a message item id without a paired reasoning item reproduced narrowly; duplicate Discord delivery was not reproduced and is not claimed delivery-consequence/code-path-serializer-risk

Removed / not formal citations

#90094content:null strict-provider rejection

Removed from the formal matrix after repeat retesting.

Retest run: https://github.com/snowzlm/openclaw/actions/runs/27012355174

Attempts that did not reproduce content:null:

  • builder-empty-tool-result
  • builder-text-tool-result
  • shared-convert-empty-tool-result
  • builder-malformed-user-null-content — throws before provider payload serialization
  • builder-malformed-assistant-null-content

Keep #90094 only as watchlist until the exact session-history shape or another transport path can reproduce input[n].content === null in GitHub Actions.

Explicit non-claims

Suggested first fix lane

Start with #89728 because it has the strongest same-root evidence:

const policyAllowsReplayIds =
  payloadPolicy.explicitStore !== false && !payloadPolicy.shouldStripStore;

Regression coverage should assert:

  • storeless custom openai-responses providers do not replay prior Responses item ids;
  • protocol-required call_id pairing remains intact for function calls and function call outputs;
  • duplicate Responses payload construction paths cannot regress independently.

Closure criteria

For each formal citation:

  1. keep or improve the Actions reproduction;
  2. link the exact code path;
  3. preserve the stated scope limit;
  4. split any unreproduced channel-level symptom into a separate issue unless a future Actions test reproduces it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions