{"record":{"id":"9155ec0f5f598828","repo":"HKUDS/nanobot","slug":"downloaded-tui-archive-failed-checksum-verificatio","errorCode":null,"errorMessage":"downloaded TUI archive failed checksum verification","messagePattern":"downloaded TUI archive failed checksum verification","errorType":"exception","errorClass":"TuiUnavailableError","httpStatus":null,"severity":"error","filePath":"nanobot/cli/tui_launcher.py","lineNumber":265,"sourceCode":"        return None\n\n    target_dir = get_data_dir() / \"bin\" / \"tui\" / version\n    cached = _cached_release_tui(target_dir, asset)\n    if cached is not None:\n        return cached\n\n    base = f\"https://github.com/HKUDS/nanobot/releases/download/v{version}\"\n    archive_name = f\"{asset}.zip\"\n    try:\n        checksum = _read_release_asset(f\"{base}/{archive_name}.sha256\", max_bytes=1024)\n        expected = _release_checksum(checksum, archive_name)\n        if expected is None:\n            return None\n        archive = _read_release_asset(f\"{base}/{archive_name}\", max_bytes=200 * 1024 * 1024)\n    except (OSError, TimeoutError, urllib.error.URLError, urllib.error.HTTPError):\n        return None\n    if hashlib.sha256(archive).hexdigest() != expected:\n        raise TuiUnavailableError(\"downloaded TUI archive failed checksum verification\")\n    files = _verified_release_archive(archive, asset)\n\n    temporary: dict[str, Path] = {}\n    try:\n        target_dir.mkdir(parents=True, exist_ok=True)\n        for name, content in files.items():\n            path = target_dir / name\n            pending = path.with_name(f\"{path.name}.tmp-{os.getpid()}\")\n            pending.write_bytes(content)\n            if name == asset and os.name != \"nt\":\n                pending.chmod(0o755)\n            temporary[name] = pending\n        for name in _release_bundle_names(asset):\n            temporary[name].replace(target_dir / name)\n    except OSError:\n        for path in temporary.values():\n            path.unlink(missing_ok=True)\n        _clear_cached_release(target_dir, asset)","sourceCodeStart":247,"sourceCodeEnd":283,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/cli/tui_launcher.py#L247-L283","documentation":"Error \"downloaded TUI archive failed checksum verification\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/cli/tui_launcher.py:265 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"}