v0.30.0: Responses “diff/edit previous” flows 400 with Azure v1 — client references rs_* items but nothing is stored
Resolved 💬 0 comments Opened Sep 8, 2025 by bro4all Closed Sep 9, 2025
What version of Codex is running?
.30.0
Which model were you using?
gpt-5
What platform is your computer?
MacOS
What steps can reproduce the bug?
model_provider = "azure"
model = "gpt5-deployment"
wire_api = "responses"
# disable_response_storage = false # present in config.toml
[model_providers.azure]
base_url = "https://<resource>.openai.azure.com/openai/v1/"
env_key = "AZURE_OPENAI_API_KEY"
codex (from a trusted project dir).
- /new, send a simple prompt (“hello”) → works.
- Use a UI action that modifies or diffs the previous assistant message (e.g., “Tell the model what to do diff”).
- Observe request fails with 400 and this payload/diagnostic:
Bad Request 400
{
"error": {
"message": "Item with id 'rs_XXXXXXXX' not found. Items are not persisted when `store` is set to false. Try again with `store` set to true, or remove this item from your input.",
"type": "invalid_request_error",
"param": "input",
"code": null
}
}
What is the expected behavior?
Expected behavior
• Either:
- Codex sets store: true automatically when it intends to reference prior items, or
- Codex avoids sending server item references in stateless mode (inline the necessary prior content into the new request), or
- Provide a user option/flag to enable server-side persistence for Responses (so “diff/edit” can work).
Actual behavior
• Codex 0.30.0 appears to send requests that reference prior item ids while the server has no stored items, causing a hard 400 and breaking “diff/edit previous” UX.
Workarounds
• Avoid “diff/edit previous”; copy the prior output (or code) into a new message and describe the changes.
• Using Codex ≤0.29.x (where storage behavior differs) also avoids the error, but I want 0.30.0 to work.
What do you see instead?
_No response_
Additional information
_No response_