{"record":{"id":"7bce17e3fe49e6fc","repo":"zeroclaw-labs/zeroclaw","slug":"openaicompatiblebuilder-display-name-is-require","errorCode":null,"errorMessage":"OpenAiCompatibleBuilder: display_name() is required","messagePattern":"OpenAiCompatibleBuilder: display_name\\(\\) is required","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-providers/src/compatible.rs","lineNumber":552,"sourceCode":"    ) -> Self {\n        self.auth_model_provider = Some(model_provider.to_string());\n        self.auth_service = Some(auth_service);\n        self.auth_profile_override = profile_override;\n        self\n    }\n\n    /// Finalize the builder into a ready provider. Every optional construction\n    /// value must be set on this builder; the returned provider has no\n    /// post-construction mutators.\n    ///\n    /// # Panics\n    /// Panics if [`Self::display_name`], [`Self::base_url`], or\n    /// [`Self::auth_style`] was not called — those three fields carry no\n    /// sensible default and every real call site sets them.\n    pub fn build(self) -> OpenAiCompatibleModelProvider {\n        let name = self\n            .name\n            .expect(\"OpenAiCompatibleBuilder: display_name() is required\");\n        let base_url = self\n            .base_url\n            .expect(\"OpenAiCompatibleBuilder: base_url() is required\");\n        let auth_style = self\n            .auth_style\n            .expect(\"OpenAiCompatibleBuilder: auth_style() is required\");\n        // Either merge preset can enable the shared merge behavior.\n        let merge_system_into_user =\n            self.merge_system_into_user || self.merge_system_into_user_preserve_native;\n        // Default `native_tool_calling` is `!merge_system_into_user_disable_native`,\n        // i.e. only the \"combined preset\" builder setter disables it. The\n        // explicit `without_native_tools()` override wins if present.\n        let native_tool_calling = self\n            .native_tool_calling_override\n            .unwrap_or(!self.merge_system_into_user);\n        // Read the PEM bytes now so later HTTP clients incur no per-request I/O.\n        // A read error is logged at WARN and TLS falls back to system roots —\n        // preserving the established warning-and-fallback semantics.","sourceCodeStart":534,"sourceCodeEnd":570,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-providers/src/compatible.rs#L534-L570","documentation":"Error \"OpenAiCompatibleBuilder: display_name() is required\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-providers/src/compatible.rs:552 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set display_name on the OpenAiCompatibleBuilder before calling build().","Provide a display name in the compatible provider configuration entry."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}