{"record":{"id":"bc32abe2219efc68","repo":"zed-industries/zed","slug":"graphql-endpoint-discovery-failed","errorCode":null,"errorMessage":"GraphQL endpoint discovery failed: {}","messagePattern":"GraphQL endpoint discovery failed: (.+?)","errorType":"http","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/copilot_chat/src/copilot_chat.rs","lineNumber":957,"sourceCode":"    oauth_token: &str,\n    configuration: &CopilotChatConfiguration,\n    client: &Arc<dyn HttpClient>,\n) -> Result<String> {\n    let graphql_url = configuration.graphql_url();\n    let query = serde_json::json!({\n        \"query\": \"query { viewer { copilotEndpoints { api } } }\"\n    });\n\n    let request = HttpRequest::builder()\n        .method(Method::POST)\n        .uri(graphql_url.as_str())\n        .header(\"Authorization\", format!(\"Bearer {}\", oauth_token))\n        .header(\"Content-Type\", \"application/json\")\n        .body(AsyncBody::from(serde_json::to_string(&query)?))?;\n\n    let mut response = client.send(request).await?;\n\n    anyhow::ensure!(\n        response.status().is_success(),\n        \"GraphQL endpoint discovery failed: {}\",\n        response.status()\n    );\n\n    let mut body = Vec::new();\n    response.body_mut().read_to_end(&mut body).await?;\n    let body_str = std::str::from_utf8(&body)?;\n\n    let parsed: GraphQLResponse = serde_json::from_str(body_str)\n        .context(\"Failed to parse GraphQL response for Copilot endpoint discovery\")?;\n\n    let data = parsed\n        .data\n        .context(\"GraphQL response contained no data field\")?;\n\n    Ok(data.viewer.copilot_endpoints.api)\n}","sourceCodeStart":939,"sourceCodeEnd":975,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/copilot_chat/src/copilot_chat.rs#L939-L975","documentation":"The GraphQL query used to discover the Copilot Chat API endpoint failed; the message wraps the discovery error (network failure or GraphQL error response). Zed could not learn which API base URL to use for Copilot Chat requests.","triggerScenarios":"Thrown at crates/copilot_chat/src/copilot_chat.rs:957 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check network access to the Copilot GraphQL endpoint","Re-authenticate if the token was rejected (see the wrapped error)","Retry; transient failures of discovery are common"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}