musistudio/claude-code-router · error · Error

CCR gateway did not start.

Error message

CCR gateway did not start.

What it means

Error "CCR gateway did not start." thrown in musistudio/claude-code-router.

Source

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

    const requestKey = `${request.pluginId}:${request.appId || ""}`;
    if (this.openingPluginRequests.has(requestKey)) {
      return;
    }
    this.openingPluginRequests.add(requestKey);

    try {
      const syncedClaudeAppConfig = await syncClaudeAppGatewayConfig(await loadAppConfig());
      const config = configForPluginAppOpen(syncedClaudeAppConfig.config, request.pluginId);
      const pluginApp = resolvePluginApp(config, request);
      if (!pluginApp) {
        throw new Error(`Plugin app is not configured or enabled: ${request.pluginId}`);
      }

      const currentStatus = gatewayService.getStatus();
      const startedGateway = currentStatus.state !== "running";
      const status = startedGateway ? await gatewayService.start(config) : currentStatus;
      if (status.state !== "running") {
        throw new Error(status.lastError || "CCR gateway did not start.");
      }
      const appUrl = resolveGatewayPluginAppUrl(config, pluginAppUrlForOpen(config, request.pluginId, pluginApp.url));
      const claudeDesignCdp = isClaudeBrowserPlugin(request.pluginId)
        ? await ensureClaudeDesignWindowCdpOptions(config, request.pluginId, startedGateway)
        : undefined;
      if (!claudeDesignCdp) {
        await ensurePluginAppUrlAvailable(config, appUrl, startedGateway);
      }
      logDeepLinkDiagnostic(
        `[deep-link] Opening plugin app ${request.pluginId}/${pluginApp.id || pluginApp.name} at ${safeUrlForLog(appUrl)}` +
          (claudeDesignCdp ? ` with Claude browser CDP backend ${claudeDesignCdp.backendUrl}` : "")
      );

      windowsManager.openPluginAppWindow({
        ...(claudeDesignCdp ? { claudeDesignCdp } : {}),
        id: `${request.pluginId}:${pluginApp.id || pluginApp.name}`,
        title: pluginApp.name,
        url: appUrl

View on GitHub (pinned to 99f24806c6)

When it happens

Trigger: Thrown at packages/electron/src/main/deep-link.ts:139 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/2120dc017cdf1e72. Report an issue: GitHub.