{"record":{"id":"ad64087aaf386746","repo":"zed-industries/zed","slug":"chatgpt-models-request-timed-out-after-model-cata","errorCode":null,"errorMessage":"ChatGPT models request timed out after {MODEL_CATALOG_REQUEST_TIMEOUT:?}","messagePattern":"ChatGPT models request timed out after (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/openai_subscribed/src/openai_subscribed.rs","lineNumber":254,"sourceCode":"    ) -> Task<Result<(), Arc<anyhow::Error>>> {\n        self.model_catalog_generation = self.model_catalog_generation.wrapping_add(1);\n        let model_catalog_generation = self.model_catalog_generation;\n        let http_client = self.http_client.clone();\n        let client_version = self.client_version.clone();\n\n        cx.spawn(async move |this, cx| {\n            let result = async {\n                let credentials = get_fresh_credentials(&this, &http_client, cx)\n                    .await\n                    .map_err(|error| anyhow!(\"{error}\"))?;\n                let request =\n                    list_models(http_client.as_ref(), &credentials, client_version.as_ref());\n                let timeout = cx\n                    .background_executor()\n                    .timer(MODEL_CATALOG_REQUEST_TIMEOUT);\n                futures::select! {\n                    result = request.fuse() => result,\n                    () = timeout.fuse() => Err(anyhow!(\n                        \"ChatGPT models request timed out after {MODEL_CATALOG_REQUEST_TIMEOUT:?}\"\n                    )),\n                }\n            }\n            .await;\n\n            match result {\n                Ok(models) => this\n                    .update(cx, |state, cx| {\n                        if state.model_catalog_generation == model_catalog_generation {\n                            state.available_models = models;\n                            state.last_model_catalog_error = None;\n                            cx.notify();\n                        }\n                    })\n                    .map_err(Arc::new),\n                Err(error) => {\n                    let error = Arc::new(error);","sourceCodeStart":236,"sourceCodeEnd":272,"githubUrl":"https://github.com/zed-industries/zed/blob/5a9b9558db01a6b906cec2fb70a797affdc58cdd/crates/openai_subscribed/src/openai_subscribed.rs#L236-L272","documentation":"The spawned background task that fetches the ChatGPT model catalog exceeded MODEL_CATALOG_REQUEST_TIMEOUT, so the HTTP request to OpenAI was aborted mid-flight. It indicates the models endpoint was unreachable or slow (network issues, proxy blocking, or OpenAI outage), not that the response was malformed.","triggerScenarios":"Thrown at crates/openai_subscribed/src/openai_subscribed.rs:233 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check network connectivity and any proxy/VPN configuration that might block chatgpt.com or the OpenAI models endpoint","Retry the request; the catalog refresh is rescheduled automatically on the next attempt or when credentials change","If the timeout persists, check status.openai.com for an ongoing outage"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5a9b9558db01a6b906cec2fb70a797affdc58cdd","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}