Kong/insomnia · error · Error

[plugin-window] Tag action not found

Error message

[plugin-window] Tag action not found: ${actionName}

What it means

Dispatch guard in invokePluginMethod for runTemplateTagAction: a template tag matching pluginName and tagName was found, but it declares no action with the requested actionName. The missing action name is interpolated; check the plugin's templateTag.actions definition.

Solutions

  1. Check the tag's declared actions and use the correct action name
  2. Update the plugin tag to register the expected action
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/insomnia/src/plugins/invoke-method.ts:195 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/ce5001deefe52773. Report an issue: GitHub.

Appendix: source

Thrown at packages/insomnia/src/plugins/invoke-method.ts:195

    case 'getTemplateTags': {
      const tags = await getTemplateTags();
      return tags.map(({ plugin, templateTag }) => ({
        pluginName: plugin.name,
        // eslint-disable-next-line unicorn/prefer-structured-clone
        templateTag: JSON.parse(JSON.stringify(templateTag)),
      }));
    }

    case 'runTemplateTagAction': {
      const { pluginName, tagName, actionName } = args as RunTemplateTagActionArgs;
      const tags = await getTemplateTags();
      const tag = tags.find(t => t.plugin.name === pluginName && t.templateTag.name === tagName);
      if (!tag) {
        throw new Error(`[plugin-window] Template tag not found: ${pluginName}/${tagName}`);
      }
      const action = tag.templateTag.actions?.find((a: any) => a.name === actionName);
      if (!action) {
        throw new Error(`[plugin-window] Tag action not found: ${actionName}`);
      }
      await action.run(pluginStore.init(tag.plugin));
      return null;
    }

    case 'hasRequestHooks': {
      const hooks = await getRequestHooks();
      return hooks.length > 0;
    }

    case 'hasResponseHooks': {
      const hooks = await getResponseHooks();
      return hooks.length > 0;
    }

    case 'applyRequestHooks': {
      const { renderedRequest, projectId, environment } = args as ApplyRequestHooksArgs;
      const newRenderedRequest = { ...renderedRequest };

View on GitHub (pinned to d9bb2b0142)