{"record":{"id":"a618bf21f6da2fb5","repo":"openai/codex","slug":"chatgpt-backend-requests-require-codex-backend-aut-a618bf","errorCode":null,"errorMessage":"ChatGPT backend requests require Codex backend auth","messagePattern":"ChatGPT backend requests require Codex backend auth","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/chatgpt/src/connectors.rs","lineNumber":143,"sourceCode":"    ))\n}\n\npub struct ConnectorMetadataReadResult {\n    pub apps: Vec<ConnectorMetadata>,\n    pub missing_app_ids: Vec<String>,\n}\n\n/// Reads display metadata without loading MCP connector tools or runtime state.\n///\n/// The store is created before awaiting the backend request, so a response that arrives after an\n/// account or backend change can only commit to the scope under which it was requested.\npub async fn read_connector_metadata(\n    config: &Config,\n    auth: &CodexAuth,\n    app_ids: &[String],\n    include_tools: bool,\n) -> anyhow::Result<ConnectorMetadataReadResult> {\n    anyhow::ensure!(\n        auth.uses_codex_backend(),\n        \"ChatGPT backend requests require Codex backend auth\"\n    );\n    anyhow::ensure!(\n        auth.get_account_id().is_some(),\n        \"ChatGPT account ID not available, please re-run codex login\"\n    );\n\n    let store = ConnectorMetadataStore::new(\n        config.chatgpt_base_url.clone(),\n        auth.get_account_id(),\n        auth.get_chatgpt_user_id(),\n        auth.is_workspace_account(),\n    );\n    let mut metadata_by_id = store.fresh_records(app_ids, include_tools);\n    let missing_ids = app_ids\n        .iter()\n        .filter(|app_id| !metadata_by_id.contains_key(app_id.as_str()))","sourceCodeStart":125,"sourceCodeEnd":161,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/chatgpt/src/connectors.rs#L125-L161","documentation":"Error \"ChatGPT backend requests require Codex backend auth\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/chatgpt/src/connectors.rs:143 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}