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
- Reinstall or rebuild the desktop app so the vendored bundle asset ships correctly.
- Check the diag log (`io.hoppscotch.desktop.diag.log`) for the `loadVendoredInstance` line showing `windowLabel` and any preceding plugin error.
- Verify the Tauri appload plugin is the version the build expects and that window creation permissions are granted.
- 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
- Ship a verified vendored bundle in every desktop build.
- Check io.hoppscotch.desktop.diag.log for the loadVendoredInstance line.
- Keep the appload plugin version aligned with the build.
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
- Failed to load ${instance.displayName}
- Failed to write desktopSettings: ${err.kind}: ${err.message}
- Migration failed: ${migration.getMigrationError().value}
- Persistence init failed: ${initResult.left.kind}: ${initResu
- Agent not running
AI-assisted analysis of hoppscotch/hoppscotch@1acb8a3a75 (2026-08-12).
Data as JSON: /api/errors/323fc82328bab3f0.
Report an issue: GitHub.