musistudio/claude-code-router · error · Error

Plugin id is required.

Error message

Plugin id is required.

What it means

Error "Plugin id is required." thrown in musistudio/claude-code-router.

Source

Thrown at packages/electron/src/main/deep-link.ts:342

  if (action && action !== "open") {
    throw new Error(`Unsupported plugin link action: ${action}`);
  }

  const appId = boundedPluginId(url.searchParams.get("app") || url.searchParams.get("appId"), true);
  return {
    ...(appId ? { appId } : {}),
    pluginId,
    rawUrl
  };
}

function boundedPluginId(value: string | null | undefined, optional = false): string {
  const normalized = value?.trim();
  if (!normalized) {
    if (optional) {
      return "";
    }
    throw new Error("Plugin id is required.");
  }
  if (normalized.length > 120 || !/^[a-z0-9][a-z0-9._-]*$/i.test(normalized)) {
    throw new Error(`Invalid plugin id: ${normalized}`);
  }
  return normalized;
}

function resolvePluginApp(config: Pick<AppConfig, "plugins">, request: PluginDeepLinkRequest): GatewayPluginAppConfig | undefined {
  const plugin = config.plugins.find((candidate) => candidate.enabled !== false && candidate.id === request.pluginId);
  if (!plugin) {
    return resolveKnownBuiltInPluginApp(request);
  }

  const apps = configuredPluginApps(plugin.id, plugin.apps);
  if (!apps.length) {
    return undefined;
  }

View on GitHub (pinned to 99f24806c6)

When it happens

Trigger: Thrown at packages/electron/src/main/deep-link.ts:342 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of musistudio/claude-code-router@99f24806c6 (2026-08-27). Data as JSON: /api/errors/1f39fca8be90d1a1. Report an issue: GitHub.