Kong/insomnia · error · Error

Plugin "${pluginName}": sandboxed ${surface} are not support

Error message

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

What it means

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

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)

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.