Kong/insomnia · error · Error

Plugin " ": sandboxed are not supported yet. Disable "Run…

Error message

Plugin "${pluginName}": sandboxed ${surface} are not supported yet. Disable "Run template tags in sandbox" to use them.

What it means

Capability error raised while routing a sandboxed plugin template tag: the plugin declares template tags for a surface the sandbox does not yet support, so the notRouted handler rejects and tells the user to disable sandboxed tag execution.

Solutions

  1. Disable the 'Run template tags in sandbox' setting so the plugin tag runs unsandboxed
  2. Remove or avoid the plugin tag on the unsupported surface until the sandbox supports it
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at packages/insomnia/src/plugins/index.ts:82 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Kong/insomnia@d9bb2b0142 (2026-08-26). Data as JSON: /api/errors/f3b7af8e7b37409b. Report an issue: GitHub.

Appendix: source

Thrown at packages/insomnia/src/plugins/index.ts:82

// discovery has to reach the sandbox from either. In main we call the sandbox directly — the
// `insomnia-templating-worker-database://` protocol is a renderer<->main channel and main's own
// `fetch` can't resolve it. In a renderer (the plugin window) we go over that protocol.
async function discoverUserPluginExports(
  directory: string,
  name: string,
  permissions: Plugin['permissions'],
): Promise<PluginExportManifest> {
  const body = { directory, name, permissions };
  if (__IS_RENDERER__) {
    return (await fetchFromTemplateWorkerDatabase('plugin.discoverUserPluginExports', body)) as PluginExportManifest;
  }
  const { discoverUserPluginExportsForLoader } = await import('~/main/templating-worker-database');
  return discoverUserPluginExportsForLoader(body);
}

function buildUserPluginModuleFromManifest(pluginName: string, manifest: PluginExportManifest): Plugin['module'] {
  const notRouted = (surface: string) => () => {
    throw new Error(
      `Plugin "${pluginName}": sandboxed ${surface} are not supported yet. Disable "Run template tags in sandbox" to use them.`,
    );
  };
  const toAction = (surface: string) => (a: ActionDescriptor) => ({
    label: a.label ?? '',
    icon: a.icon,
    action: notRouted(surface),
  });
  // The count comes from untrusted sandbox output; clamp to a finite, non-negative, bounded integer
  // before allocating so a hostile manifest can't drive a huge Array.from allocation (the sandbox
  // clamps too — this is defense in depth).
  const hookStubs = (count: number, surface: string) =>
    Array.from({ length: Number.isFinite(count) && count > 0 ? Math.min(Math.floor(count), 1000) : 0 }, () =>
      notRouted(surface),
    );
  return {
    templateTags: manifest.templateTags.map(t => ({ ...t, run: notRouted('template-tag run()') }) as PluginTemplateTag),
    requestHooks: hookStubs(manifest.requestHooks, 'request hooks'),

View on GitHub (pinned to d9bb2b0142)