hoppscotch/hoppscotch · critical · Error

Failed to load Hoppscotch Vendored

Error message

Failed to load Hoppscotch Vendored

What it means

Thrown by the desktop launcher's `loadVendoredInstance` after the Tauri appload `load()` call returns a result with `success === false`. The vendored bundle is the bundled default Hoppscotch app; this throw signals the Rust-side appload plugin mounted/loaded the bundle but reported failure (the `windowLabel` is logged just before). It is caught immediately and routed into `error.value` plus a connection state of `"error"`.

Source

Thrown at packages/hoppscotch-desktop/src/composables/useAppInitialization.ts:108

      // Wait for the store read before forwarding `zoomLevel`, so the
      // appload Rust-side pre-mount apply gets the persisted value
      // rather than the schema default on a fast cold-start click.
      await desktopSettings.ready()

      const loadResp = await load({
        bundleName: VENDORED_INSTANCE_CONFIG.bundleName!,
        window: {
          title: "Hoppscotch",
          zoomLevel: desktopSettings.settings.zoomLevel,
        },
      })

      mainDiag(
        `loadVendoredInstance: load result success=${loadResp.success}, label=${loadResp.windowLabel}`
      )
      if (!loadResp.success) {
        throw new Error("Failed to load Hoppscotch Vendored")
      }

      console.log("Vendored app loaded successfully")
      mainDiag("loadVendoredInstance: closing main window")
      close({ windowLabel: "main" })
    } catch (err) {
      const errorMessage = err instanceof Error ? err.message : String(err)
      console.error("Error loading vendored app:", errorMessage)
      error.value = errorMessage

      await saveConnectionState({
        status: "error",
        target: "Vendored",
        message: errorMessage,
      })

      appState.value = AppState.ERROR
    }

View on GitHub (pinned to 1acb8a3a75)

Solutions

  1. Reinstall or rebuild the desktop app so the vendored bundle asset ships correctly.
  2. Check the diag log (`io.hoppscotch.desktop.diag.log`) for the `loadVendoredInstance` line showing `windowLabel` and any preceding plugin error.
  3. Verify the Tauri appload plugin is the version the build expects and that window creation permissions are granted.
  4. Run as a clean user profile / temp dir to rule out a corrupted cache, then retry.
Defensive patterns

Strategy: try-catch

Validate before calling

// No pre-API; load() is the boundary. Validate inputs first.
if (!VENDORED_INSTANCE_CONFIG.bundleName) throw new Error("vendored bundleName missing")

Type guard

function isLoadSuccess(r: { success: boolean; windowLabel: string }): r is { success: true; windowLabel: string } { return r.success === true }

Try / catch

try { await loadVendoredInstance() } catch (e) { /* error.value set internally; check diag log */ }

Prevention

When it happens

Trigger: Calling `loadVendoredInstance()` (the default/fallback load path) when `load({ bundleName: VENDORED_INSTANCE_CONFIG.bundleName, window })` resolves with `{ success:false, windowLabel }` — e.g. the vendored bundle is missing, corrupted, fails to mount, or the window creation step rejects inside the appload plugin.

Common situations: A broken/incomplete desktop build where the vendored bundle asset is absent, an antivirus/permission issue blocking the embedded resources, a Tauri/appload plugin version mismatch, or window initialization failing on first launch.

Related errors


AI-assisted analysis of hoppscotch/hoppscotch@1acb8a3a75 (2026-08-12). Data as JSON: /api/errors/323fc82328bab3f0. Report an issue: GitHub.