{"record":{"id":"25f1e046cb3f1fed","repo":"xai-org/x-algorithm","slug":"env-grpc-mtls-client-ca-path-must-be-set-when-e","errorCode":null,"errorMessage":"{ENV_GRPC_MTLS_CLIENT_CA_PATH} must be set when {ENV_GRPC_MTLS_ENABLED}=true","messagePattern":"(.+?) must be set when (.+?)=true","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"home-mixer/config.rs","lineNumber":57,"sourceCode":"            .ok()\n            .filter(|v| !v.is_empty())\n        {\n            Some(v) => v,\n            None => bail!(\n                \"{ENV_GRPC_MTLS_SERVER_CRT_PATH} must be set when {ENV_GRPC_MTLS_ENABLED}=true\"\n            ),\n        };\n\n        let server_chain_path = std::env::var(ENV_GRPC_MTLS_SERVER_CHAIN_PATH)\n            .ok()\n            .filter(|v| !v.is_empty());\n\n        let client_ca_path = match std::env::var(ENV_GRPC_MTLS_CLIENT_CA_PATH)\n            .ok()\n            .filter(|v| !v.is_empty())\n        {\n            Some(v) => v,\n            None => bail!(\n                \"{ENV_GRPC_MTLS_CLIENT_CA_PATH} must be set when {ENV_GRPC_MTLS_ENABLED}=true\"\n            ),\n        };\n\n        Ok(Some(Self {\n            server_key_path,\n            server_crt_path,\n            server_chain_path,\n            client_ca_path,\n        }))\n    }\n\n    pub fn server_tls_config(&self) -> anyhow::Result<tonic::transport::ServerTlsConfig> {\n        let mut cert_pem = std::fs::read(&self.server_crt_path)\n            .with_context(|| format!(\"failed to read {}\", self.server_crt_path))?;\n        let key_pem = std::fs::read(&self.server_key_path)\n            .with_context(|| format!(\"failed to read {}\", self.server_key_path))?;\n        let client_ca_pem = std::fs::read(&self.client_ca_path)","sourceCodeStart":39,"sourceCodeEnd":75,"githubUrl":"https://github.com/xai-org/x-algorithm/blob/24c60942c5c5fdad3a6addffb4c6e6d2f228f04f/home-mixer/config.rs#L39-L75","documentation":"Error \"{ENV_GRPC_MTLS_CLIENT_CA_PATH} must be set when {ENV_GRPC_MTLS_ENABLED}=true\" thrown in xai-org/x-algorithm.","triggerScenarios":"Thrown at home-mixer/config.rs:57 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":"24c60942c5c5fdad3a6addffb4c6e6d2f228f04f","analyzedAt":"2026-08-28T11:40:14.686Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}