What was broken
Zed, a code editor written in Rust, can use models from a ChatGPT subscription. After sign-in it fetches the catalog of models available to the account from /backend-api/codex/models. For some accounts that response takes around 30 seconds, and Zed aborted the request after 5. It then fell back to the built-in model list, and the account-specific models disappeared from the model selector (issue #64173).
Simply raising the timeout was not an option. Loading the credentials and signing in both wait for this request, so the user would be staring at a stuck screen for half a minute.
What we changed
We split the timeout in two. Sign-in still waits at most 5 seconds, but the request is no longer aborted: it keeps running in the background for up to 60 seconds and replaces the model list once it finally returns.
If the catalog arrives within 5 seconds, nothing changes. If not, the detached task finishes later, and any error only goes to the log instead of blocking the interface.
How we tested it
We added test_slow_model_catalog_does_not_block_initial_load, with a fake HTTP client that holds the response back. The initial load finishes after 5 seconds with the built-in models, and a response arriving 30 seconds later replaces them with the account's models. cargo test and clippy passed for the crate. The change was not tested against the live endpoint, and the pull request says so plainly.
The result
The change was merged into main on 1 October 2026. Its release note entry describes it as a fix for ChatGPT subscription models disappearing when the catalog takes longer than 5 seconds to load.