CloakHQ/CloakBrowser · error · RuntimeError

Pro download completed but binary not found at: {binary_path

Error message

Pro download completed but binary not found at: {binary_path}

What it means

For a PINNED Pro version: after _download_pro_binary completes, the Pro binary is not found at get_binary_path(version, pro=True). Indicates download/extraction inconsistency for the Pro artifact.

Source

Thrown at cloakbrowser/download.py:411

    # --- Pinned: launch the exact requested version, no server cross-check, no
    # marker write (a rollback pin must not stick future unpinned launches). ---
    if requested_version:
        if _pro_binary_ready(requested_version):
            binary_path = get_binary_path(requested_version, pro=True)
            logger.debug(
                "Pinned Pro binary found in cache: %s (version %s)",
                binary_path,
                requested_version,
            )
            _show_welcome(welcome_tier)
            return str(binary_path)
        logger.info(
            "Downloading Pro Chromium %s for %s...", requested_version, get_platform_tag()
        )
        _download_pro_binary(requested_version, license_key)
        binary_path = get_binary_path(requested_version, pro=True)
        if not binary_path.exists():
            raise RuntimeError(
                f"Pro download completed but binary not found at: {binary_path}"
            )
        _show_welcome(welcome_tier)
        return str(binary_path)

    # --- Unpinned: track the server's latest selected channel. ---
    effective = get_effective_version(pro=True, release_channel=release_channel)

    # Honor CLOAKBROWSER_AUTO_UPDATE=false the way the free path does: if the user
    # froze updates AND a Pro build is already cached, keep it and skip the server
    # check. With no cached build we must still fetch one — a valid Pro license can
    # never launch the free binary. (The `update` CLI ignores this and always acts.)
    frozen = os.environ.get("CLOAKBROWSER_AUTO_UPDATE", "").lower() == "false"
    if frozen and _pro_binary_ready(effective):
        logger.debug("Pro auto-update disabled; using cached %s", effective)
        _show_welcome(welcome_tier)
        return str(get_binary_path(effective, pro=True))

View on GitHub (pinned to d6bad5de26)

Solutions

  1. Clear the Pro cache directory and retry
  2. Check disk space and permissions
  3. Report the pinned version to maintainers
Defensive patterns

Strategy: retry

Try / catch

try:
    ensure_binary(browser_version=PIN)  # with license key set
except RuntimeError as e:
    if "Pro download completed but binary not found" in str(e):
        clear_pro_cache(); ensure_binary(browser_version=PIN)
    else:
        raise

Prevention

When it happens

Trigger: Calling ensure_binary with browser_version pinned and a valid Pro license; Pro tarball downloaded but not executable/present at the expected pro path.

Common situations: Pro archive layout change; interrupted extraction; cache corruption; disk full.

Related errors


AI-assisted analysis of CloakHQ/CloakBrowser@d6bad5de26 (2026-08-28). Data as JSON: /api/errors/462b411126013f4c. Report an issue: GitHub.