{"record":{"id":"0db14a117e7a815c","repo":"HKUDS/nanobot","slug":"json-syntax-error-at-line-exc-lineno-column-ex","errorCode":null,"errorMessage":"JSON syntax error at line {exc.lineno}, column {exc.colno}: {_sentence(exc.msg)}","messagePattern":"JSON syntax error at line (.+?), column (.+?): (.+?)","errorType":"exception","errorClass":"ConfigLoadError","httpStatus":null,"severity":"error","filePath":"nanobot/config/loader.py","lineNumber":86,"sourceCode":"                    \"Check that complex NANOBOT_* values use valid JSON.\"\n                ),\n            ) from exc\n        except ValidationError as exc:\n            raise ConfigLoadError(\n                path,\n                kind=\"invalid_schema\",\n                summary=\"Environment-based configuration is invalid.\",\n                issues=validation_issues(exc),\n            ) from exc\n        config.bind_source_path(path)\n        _apply_ssrf_whitelist(config)\n        return config\n\n    try:\n        with path.open(encoding=\"utf-8\") as handle:\n            data = json.load(handle)\n    except json.JSONDecodeError as exc:\n        raise ConfigLoadError(\n            path,\n            kind=\"invalid_json\",\n            summary=(\n                f\"JSON syntax error at line {exc.lineno}, column {exc.colno}: \"\n                f\"{_sentence(exc.msg)}\"\n            ),\n        ) from exc\n    except UnicodeDecodeError as exc:\n        raise ConfigLoadError(\n            path,\n            kind=\"io_error\",\n            summary=\"The file is not valid UTF-8.\",\n        ) from exc\n    except OSError as exc:\n        detail = exc.strerror or type(exc).__name__\n        raise ConfigLoadError(\n            path,\n            kind=\"io_error\",","sourceCodeStart":68,"sourceCodeEnd":104,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/config/loader.py#L68-L104","documentation":"In load_config, config.json is not valid JSON: json.load raised JSONDecodeError. The summary embeds the exact line and column plus the parser's message, so the user can fix the specific syntax slip (missing comma, unquoted key, trailing comma). The input at fault is the config.json text.","triggerScenarios":"Thrown at nanobot/config/loader.py:86 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Open config.json at the reported line/column and fix the JSON syntax","Validate the file with a JSON linter or `python -m json.tool`","Restore from a backup if the file was hand-edited badly"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","contentChangedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}