{"record":{"id":"45a098680b03cdbf","repo":"HKUDS/nanobot","slug":"scratchpad-is-full-max-max-keys-keys","errorCode":null,"errorMessage":"scratchpad is full (max {max_keys} keys)","messagePattern":"scratchpad is full \\(max (.+?) keys\\)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"nanobot/agent/tools/runtime_control.py","lineNumber":230,"sourceCode":"        self.__target.max_iterations = value\n        self.__target.subagents.max_iterations = value\n\n    def set_context_window_tokens(self, value: int) -> LLMRuntime:\n        return self.__target.set_runtime_context_window(value)\n\n    def set_provider_retry_mode(self, value: str) -> None:\n        self.__target.provider_retry_mode = value\n\n    def set_max_tool_result_chars(self, value: int) -> None:\n        self.__target.max_tool_result_chars = value\n\n    def set_workspace_display(self, value: str) -> None:\n        \"\"\"Preserve MyTool display compatibility without changing path enforcement.\"\"\"\n        self.__workspace_display = value\n\n    def set_scratchpad(self, key: str, value: JsonValue, *, max_keys: int) -> None:\n        if key not in self.__scratchpad and len(self.__scratchpad) >= max_keys:\n            raise ValueError(f\"scratchpad is full (max {max_keys} keys)\")\n        self.__scratchpad[key] = value\n\n\ndef _snapshot_model_presets(\n    presets: Mapping[str, ModelPresetConfig],\n) -> dict[str, dict[str, object]]:\n    return {\n        name: {\n            \"model\": preset.model,\n            \"provider\": preset.provider,\n            \"max_tokens\": preset.max_tokens,\n            \"context_window_tokens\": preset.context_window_tokens,\n            \"temperature\": preset.temperature,\n            \"reasoning_effort\": preset.reasoning_effort,\n        }\n        for name, preset in presets.items()\n    }\n","sourceCodeStart":212,"sourceCodeEnd":248,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/agent/tools/runtime_control.py#L212-L248","documentation":"Error \"scratchpad is full (max {max_keys} keys)\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/agent/tools/runtime_control.py:230 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"}