{"record":{"id":"4f65ae632113f097","repo":"HKUDS/nanobot","slug":"model-preset-must-be-a-non-empty-string","errorCode":null,"errorMessage":"model_preset must be a non-empty string","messagePattern":"model_preset must be a non-empty string","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"nanobot/agent/model_presets.py","lineNumber":80,"sourceCode":"        model_preset=name,\n    )\n\n\ndef build_runtime_preset_snapshot(\n    *,\n    name: str,\n    presets: dict[str, ModelPresetConfig],\n    provider: LLMProvider,\n    loader: PresetSnapshotLoader | None,\n) -> ProviderSnapshot:\n    if loader is not None:\n        return replace(loader(name), model_preset=name)\n    return build_static_preset_snapshot(provider, name, presets[name])\n\n\ndef normalize_preset_name(name: str | None, presets: dict[str, ModelPresetConfig]) -> str:\n    if not isinstance(name, str) or not name.strip():\n        raise ValueError(\"model_preset must be a non-empty string\")\n    name = name.strip()\n    if name in presets:\n        return name\n    matches = [candidate for candidate in presets if candidate.casefold() == name.casefold()]\n    if len(matches) == 1:\n        return matches[0]\n    raise KeyError(f\"model_preset {name!r} not found. Available: {', '.join(presets) or '(none)'}\")\n","sourceCodeStart":62,"sourceCodeEnd":88,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/agent/model_presets.py#L62-L88","documentation":"Error \"model_preset must be a non-empty string\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/agent/model_presets.py:80 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"}