{"record":{"id":"2f82eb632f324fbe","repo":"exo-explore/exo","slug":"file-not-found-url","errorCode":null,"errorMessage":"File not found: {url}","messagePattern":"File not found: (.+?)","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"src/exo/download/download_utils.py","lineNumber":723,"sourceCode":"    remote_hash = etag[:-5] if etag.endswith(\"-gzip\") else etag\n    partial_path = target_dir / f\"{path}.partial\"\n    resume_byte_pos = (\n        (await aios.stat(partial_path)).st_size\n        if (await aios.path.exists(partial_path))\n        else None\n    )\n    if resume_byte_pos != length:\n        url = urljoin(f\"{get_hf_endpoint()}/{model_id}/resolve/{revision}/\", path)\n        headers = await get_download_headers()\n        if resume_byte_pos:\n            headers[\"Range\"] = f\"bytes={resume_byte_pos}-\"\n        n_read = resume_byte_pos or 0\n        async with (\n            create_http_session(timeout_profile=\"long\") as session,\n            session.get(url, headers=headers) as r,\n        ):\n            if r.status == 404:\n                raise FileNotFoundError(f\"File not found: {url}\")\n            if r.status in [401, 403]:\n                msg = await _build_auth_error_message(r.status, model_id)\n                raise HuggingFaceAuthenticationError(msg)\n            if r.status == 429:\n                raise HuggingFaceRateLimitError(\n                    f\"HuggingFace rate limit hit downloading {model_id}/{path}\",\n                    retry_after=_parse_retry_after(r.headers),\n                )\n            assert r.status in [200, 206], (\n                f\"Failed to download {path} from {url}: {r.status}\"\n            )\n            async with aiofiles.open(\n                partial_path, \"ab\" if resume_byte_pos else \"wb\"\n            ) as f:\n                while chunk := await r.content.read(8 * 1024 * 1024):\n                    n_read = n_read + (await f.write(chunk))\n                    on_progress(n_read, length, False)\n","sourceCodeStart":705,"sourceCodeEnd":741,"githubUrl":"https://github.com/exo-explore/exo/blob/21a54c5ea0230a3bec1e1a786d200126c7e34ec6/src/exo/download/download_utils.py#L705-L741","documentation":"Error \"File not found: {url}\" thrown in exo-explore/exo.","triggerScenarios":"Thrown at src/exo/download/download_utils.py:723 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":"21a54c5ea0230a3bec1e1a786d200126c7e34ec6","analyzedAt":"2026-08-26T00:02:16.033Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}