{"record":{"id":"60fcff9fb1a2b63d","repo":"HKUDS/nanobot","slug":"model-must-be-a-non-empty-string","errorCode":null,"errorMessage":"model must be a non-empty string","messagePattern":"model must be a non-empty string","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"nanobot/agent/model_runtime.py","lineNumber":144,"sourceCode":"            presets=self._model_presets,\n            provider=self._runtime.provider,\n            loader=self._preset_snapshot_loader,\n        )\n        runtime = self.resolve_snapshot(snapshot)\n        self._resolved_presets[normalized] = runtime\n        return runtime\n\n    def select_preset(self, name: str | None) -> LLMRuntime:\n        \"\"\"Select a named preset as the default for future turns.\"\"\"\n        runtime = self.resolve_preset(name)\n        self._runtime = runtime\n        self._tracks_provider_generation = False\n        return runtime\n\n    def select_model(self, model: str) -> LLMRuntime:\n        \"\"\"Change the default model without reconstructing downstream consumers.\"\"\"\n        if not isinstance(cast(object, model), str) or not model.strip():\n            raise ValueError(\"model must be a non-empty string\")\n        self._runtime = replace(\n            self._runtime,\n            model=model.strip(),\n            model_preset=None,\n        )\n        return self._runtime\n\n    def select_context_window(self, context_window_tokens: int) -> LLMRuntime:\n        \"\"\"Change the default context limit for future admissions.\"\"\"\n        raw_context_window = cast(object, context_window_tokens)\n        if not isinstance(raw_context_window, int) or isinstance(\n            raw_context_window,\n            bool,\n        ):\n            raise TypeError(\"context_window_tokens must be an integer\")\n        self._runtime = replace(\n            self._runtime,\n            context_window_tokens=context_window_tokens,","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/agent/model_runtime.py#L126-L162","documentation":"Error \"model must be a non-empty string\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/agent/model_runtime.py:144 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":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}