Skip to content

Improve ChatGPT subscription response resilience - #57891

Merged
Anthony-Eid merged 13 commits into
mainfrom
morgan/fr-22-chatgpt-subscription-resilience
May 28, 2026
Merged

Improve ChatGPT subscription response resilience#57891
Anthony-Eid merged 13 commits into
mainfrom
morgan/fr-22-chatgpt-subscription-resilience

Conversation

@morgankrey

@morgankrey morgankrey commented May 28, 2026

Copy link
Copy Markdown
Contributor

Summary

This started from #57636, after we saw ChatGPT subscription/Codex requests stall over the past week. OpenCode v1.15.11 shipped related resilience fixes for the same class of Codex subscription endpoint issues, so this ports the relevant pieces into Zed's native ChatGPT subscription provider.

When Zed asks ChatGPT/Codex for a response, sometimes the server connection can get stuck before it even sends the first response headers. Before this PR, Zed could wait indefinitely, which looks like OpenCode/Zed “stalling.”

This PR makes Zed:

  • Wait up to 10 seconds for the server to start responding.
  • If nothing comes back in that window, treat it as a temporary network/API failure.
  • Let the existing retry logic try again instead of leaving the user stuck.
  • Send a stable session-id header so OpenAI’s Codex backend can associate requests with the same Zed agent thread.
  • Add tests to make sure:
    • stuck-before-response requests time out,
    • normal slow streaming responses are not cut off,
    • ChatGPT subscription requests send the right session header,
    • the agent retries this kind of failure.

intended user-facing result is: fewer “the assistant is just sitting there forever” failures when using ChatGPT subscription models.

Verification

  • cargo test -p open_ai responses
  • cargo test -p language_models openai_subscribed
  • cargo test -p agent test_send_retry_on_http_send_error
  • cargo check -p open_ai
  • cargo check -p language_models
  • cargo check -p agent

Release Notes:

  • Fixed ChatGPT subscription requests stalling indefinitely before response headers arrive.

@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label May 28, 2026
@zed-community-bot zed-community-bot Bot added the staff Pull requests authored by a current member of Zed staff label May 28, 2026
@osyvokon

Copy link
Copy Markdown
Contributor

I'm okay with this as a workaround, but I think we should revisit it in a few weeks and rollback when OpenAI fixes their issue

@alterdaemon

Copy link
Copy Markdown

I can't ever enable ChatGPT subscription for the pasts several versions of Zed including the latest one, always getting "Failed to save credentials. Please try again" ... Codex CLI works fine, but auth via subscription don't.

@Anthony-Eid
Anthony-Eid added this pull request to the merge queue May 28, 2026
Merged via the queue into main with commit ef5606b May 28, 2026
32 checks passed
@Anthony-Eid
Anthony-Eid deleted the morgan/fr-22-chatgpt-subscription-resilience branch May 28, 2026 16:44
This was referenced May 28, 2026
TomPlanche pushed a commit to TomPlanche/zed that referenced this pull request Jun 2, 2026
## Summary

This started from zed-industries#57636, after we saw ChatGPT subscription/Codex
requests stall over the past week. OpenCode v1.15.11 shipped related
resilience fixes for the same class of Codex subscription endpoint
issues, so this ports the relevant pieces into Zed's native ChatGPT
subscription provider.

When Zed asks ChatGPT/Codex for a response, sometimes the server
connection can get stuck before it even sends the first response
headers. Before this PR, Zed could wait indefinitely, which looks like
OpenCode/Zed “stalling.”

This PR makes Zed:

- Wait up to 10 seconds for the server to start responding.
- If nothing comes back in that window, treat it as a temporary
network/API failure.
- Let the existing retry logic try again instead of leaving the user
stuck.
- Send a stable session-id header so OpenAI’s Codex backend can
associate requests with the same Zed agent thread.
- Add tests to make sure:
  - stuck-before-response requests time out,
  - normal slow streaming responses are not cut off,
  - ChatGPT subscription requests send the right session header,
  - the agent retries this kind of failure.

intended user-facing result is: fewer “the assistant is just sitting
there forever” failures when using ChatGPT subscription models.

## Verification

- cargo test -p open_ai responses
- cargo test -p language_models openai_subscribed
- cargo test -p agent test_send_retry_on_http_send_error
- cargo check -p open_ai
- cargo check -p language_models
- cargo check -p agent

Release Notes:

- Fixed ChatGPT subscription requests stalling indefinitely before
response headers arrive.
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
## Summary

This started from zed-industries#57636, after we saw ChatGPT subscription/Codex
requests stall over the past week. OpenCode v1.15.11 shipped related
resilience fixes for the same class of Codex subscription endpoint
issues, so this ports the relevant pieces into Zed's native ChatGPT
subscription provider.

When Zed asks ChatGPT/Codex for a response, sometimes the server
connection can get stuck before it even sends the first response
headers. Before this PR, Zed could wait indefinitely, which looks like
OpenCode/Zed “stalling.”

This PR makes Zed:

- Wait up to 10 seconds for the server to start responding.
- If nothing comes back in that window, treat it as a temporary
network/API failure.
- Let the existing retry logic try again instead of leaving the user
stuck.
- Send a stable session-id header so OpenAI’s Codex backend can
associate requests with the same Zed agent thread.
- Add tests to make sure:
  - stuck-before-response requests time out,
  - normal slow streaming responses are not cut off,
  - ChatGPT subscription requests send the right session header,
  - the agent retries this kind of failure.

intended user-facing result is: fewer “the assistant is just sitting
there forever” failures when using ChatGPT subscription models.

## Verification

- cargo test -p open_ai responses
- cargo test -p language_models openai_subscribed
- cargo test -p agent test_send_retry_on_http_send_error
- cargo check -p open_ai
- cargo check -p language_models
- cargo check -p agent

Release Notes:

- Fixed ChatGPT subscription requests stalling indefinitely before
response headers arrive.
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
## Summary

This started from zed-industries#57636, after we saw ChatGPT subscription/Codex
requests stall over the past week. OpenCode v1.15.11 shipped related
resilience fixes for the same class of Codex subscription endpoint
issues, so this ports the relevant pieces into Zed's native ChatGPT
subscription provider.

When Zed asks ChatGPT/Codex for a response, sometimes the server
connection can get stuck before it even sends the first response
headers. Before this PR, Zed could wait indefinitely, which looks like
OpenCode/Zed “stalling.”

This PR makes Zed:

- Wait up to 10 seconds for the server to start responding.
- If nothing comes back in that window, treat it as a temporary
network/API failure.
- Let the existing retry logic try again instead of leaving the user
stuck.
- Send a stable session-id header so OpenAI’s Codex backend can
associate requests with the same Zed agent thread.
- Add tests to make sure:
  - stuck-before-response requests time out,
  - normal slow streaming responses are not cut off,
  - ChatGPT subscription requests send the right session header,
  - the agent retries this kind of failure.

intended user-facing result is: fewer “the assistant is just sitting
there forever” failures when using ChatGPT subscription models.

## Verification

- cargo test -p open_ai responses
- cargo test -p language_models openai_subscribed
- cargo test -p agent test_send_retry_on_http_send_error
- cargo check -p open_ai
- cargo check -p language_models
- cargo check -p agent

Release Notes:

- Fixed ChatGPT subscription requests stalling indefinitely before
response headers arrive.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement staff Pull requests authored by a current member of Zed staff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants