{"record":{"id":"9742fb88aabcf30f","repo":"Comfy-Org/ComfyUI","slug":"no-pre-releases-found","errorCode":null,"errorMessage":"No pre-releases found","messagePattern":"No pre-releases found","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"app/frontend_management.py","lineNumber":158,"sourceCode":"                api_url = response.links[\"next\"][\"url\"]\n            else:\n                api_url = None\n        return releases\n\n    @cached_property\n    def latest_release(self) -> Release:\n        latest_release_url = f\"{self.release_url}/latest\"\n        response = requests.get(latest_release_url, timeout=REQUEST_TIMEOUT)\n        response.raise_for_status()  # Raises an HTTPError if the response was an error\n        return response.json()\n\n    @cached_property\n    def latest_prerelease(self) -> Release:\n        \"\"\"Get the latest pre-release version - even if it's older than the latest release\"\"\"\n        release = [release for release in self.all_releases if release[\"prerelease\"]]\n\n        if not release:\n            raise ValueError(\"No pre-releases found\")\n\n        # GitHub returns releases in reverse chronological order, so first is latest\n        return release[0]\n\n    def get_release(self, version: str) -> Release:\n        if version == \"latest\":\n            return self.latest_release\n        elif version == \"prerelease\":\n            return self.latest_prerelease\n        else:\n            for release in self.all_releases:\n                if release[\"tag_name\"] in [version, f\"v{version}\"]:\n                    return release\n            raise ValueError(f\"Version {version} not found in releases\")\n\n\ndef download_release_asset_zip(release: Release, destination_path: str) -> None:\n    \"\"\"Download dist.zip from github release.\"\"\"","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/app/frontend_management.py#L140-L176","documentation":"FrontendManager.latest_prerelease filters all GitHub releases of the ComfyUI frontend repo for ones flagged prerelease and takes the newest. If the repo currently has zero pre-release entries (maintainers may delete or convert them), the cached property raises ValueError('No pre-releases found'). This is hit only when you explicitly request the 'prerelease' frontend version.","triggerScenarios":"Launching with --front-end-version prerelease (or selecting prerelease via the frontend update mechanism) when the GitHub repo comfyui-frontend-release has no releases marked as prerelease; also triggered when a previous request cached an empty all_releases list.","commonSituations":"Testing a nightly frontend build; GitHub API rate-limiting or a proxy returning an incomplete releases list; upstream removing prerelease tags after a stable release.","solutions":["Use --front-end-version latest instead, which pulls the newest stable release.","Pick a concrete version tag, e.g. --front-end-version 1.24.2, to avoid depending on prerelease availability.","If behind a proxy or rate-limited, check GitHub API access (GITHUB_TOKEN / rate limits) so all_releases is complete.","Retry later once upstream publishes a new prerelease."],"exampleFix":"# before\npython main.py --front-end-version prerelease\n\n# after\npython main.py --front-end-version latest","handlingStrategy":"validation","validationCode":"from app.frontend_management import FrontendManager\nfm = FrontendManager()\nhas_prerelease = any(r[\"prerelease\"] for r in fm.all_releases)\nif not has_prerelease:\n    version = \"latest\"  # fall back instead of requesting prerelease","typeGuard":"def has_prerelease(releases: list[dict]) -> bool:\n    return any(bool(r.get(\"prerelease\")) for r in releases)","tryCatchPattern":"try:\n    rel = fm.get_release(\"prerelease\")\nexcept ValueError:\n    rel = fm.get_release(\"latest\")","preventionTips":["Pin explicit frontend versions instead of 'prerelease' in scripts.","Handle GitHub API errors/rate limits before assuming releases are complete."],"tags":["frontend","network","github-api","versioning"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}