{"record":{"id":"8959eadf79b98b76","repo":"openai/codex","slug":"websocket-auth-secret-must-not-be-empty","errorCode":null,"errorMessage":"websocket auth secret {} must not be empty","messagePattern":"websocket auth secret (.+?) must not be empty","errorType":"validation","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/app-server-transport/src/transport/auth.rs","lineNumber":413,"sourceCode":"            ),\n        ));\n    }\n    Ok(())\n}\n\nfn read_trimmed_secret(path: &std::path::Path) -> io::Result<String> {\n    let raw = std::fs::read_to_string(path).map_err(|err| {\n        io::Error::new(\n            err.kind(),\n            format!(\n                \"failed to read websocket auth secret {}: {err}\",\n                path.display()\n            ),\n        )\n    })?;\n    let trimmed = raw.trim();\n    if trimmed.is_empty() {\n        return Err(io::Error::new(\n            ErrorKind::InvalidInput,\n            format!(\"websocket auth secret {} must not be empty\", path.display()),\n        ));\n    }\n    Ok(trimmed.to_string())\n}\n\nfn absolute_path_arg(flag_name: &str, path: PathBuf) -> anyhow::Result<AbsolutePathBuf> {\n    AbsolutePathBuf::try_from(path).with_context(|| format!(\"{flag_name} must be an absolute path\"))\n}\n\nfn sha256_digest_arg(flag_name: &str, value: &str) -> anyhow::Result<[u8; 32]> {\n    let trimmed = value.trim();\n    if trimmed.len() != 64 {\n        anyhow::bail!(\"{flag_name} must be a 64-character hex SHA-256 digest\");\n    }\n\n    let mut digest = [0u8; 32];","sourceCodeStart":395,"sourceCodeEnd":431,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/app-server-transport/src/transport/auth.rs#L395-L431","documentation":"Error \"websocket auth secret {} must not be empty\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/app-server-transport/src/transport/auth.rs:413 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"}