{"record":{"id":"af5e20cf0a495e2e","repo":"Comfy-Org/ComfyUI","slug":"version-version-not-found-in-releases","errorCode":null,"errorMessage":"Version {version} not found in releases","messagePattern":"Version (.+?) not found in releases","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"app/frontend_management.py","lineNumber":172,"sourceCode":"        \"\"\"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.\"\"\"\n    asset_url = None\n    for asset in release.get(\"assets\", []):\n        if asset[\"name\"] == \"dist.zip\":\n            asset_url = asset[\"url\"]\n            break\n\n    if not asset_url:\n        raise ValueError(\"dist.zip not found in the release assets\")\n\n    # Use a temporary file to download the zip content\n    with tempfile.TemporaryFile() as tmp_file:\n        headers = {\"Accept\": \"application/octet-stream\"}\n        response = requests.get(\n            asset_url, headers=headers, allow_redirects=True, timeout=REQUEST_TIMEOUT","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/app/frontend_management.py#L154-L190","documentation":"FrontendManager.get_release resolves a version string by scanning every GitHub release tag for an exact match of either '<version>' or 'v<version>'. If no tag matches, it raises ValueError. The string 'latest' and 'prerelease' are handled before this loop, so this error means a literal version that does not exist upstream.","triggerScenarios":"Calling --front-end-version (or get_release) with a typo'd or non-existent tag such as 1,24,2, 1.99.99, or v1.24.2 with unexpected casing/spacing; requesting a version that was deleted upstream; passing an empty string.","commonSituations":"Copy-pasting a version from an issue thread that was never released; using a full SHA or branch name instead of a release tag; locale-specific decimal separators producing '1,24'.","solutions":["List valid tags first: check the releases page of the comfyui-frontend-release repo (or call all_releases) and copy the exact tag.","Drop the leading 'v' if you used one, or add it — both forms are accepted, but the digits must match exactly.","Use --front-end-version latest if you just want the current release."],"exampleFix":"# before\npython main.py --front-end-version 1,24,2\n\n# after\npython main.py --front-end-version 1.24.2","handlingStrategy":"validation","validationCode":"valid = {r[\"tag_name\"].lstrip(\"v\") for r in fm.all_releases}\nif version.lstrip(\"v\") not in valid:\n    raise SystemExit(f\"unknown frontend version {version}; valid: {sorted(valid)[-5:]}\")\nrel = fm.get_release(version)","typeGuard":"def is_known_version(fm, version: str) -> bool:\n    return any(r[\"tag_name\"] in (version, f\"v{version}\") for r in fm.all_releases)","tryCatchPattern":"try:\n    release = fm.get_release(version)\nexcept ValueError as e:\n    # list closest available tags for the user\n    print(\"available:\", [r[\"tag_name\"] for r in fm.all_releases][:10]); raise","preventionTips":["Derive version strings from all_releases tag_name values, never hand-type them.","Validate versions against the tag list before calling get_release."],"tags":["frontend","validation","versioning"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}