paperclipai/paperclip · error · ToolGatewayHttpError

local_stdio_command_unavailable

local_stdio_command_unavailable

Error message

Local stdio template does not define an executable command

What it means

Pre-launch sanity check in callLocalStdioMcp: the resolved runtime template has no command executable defined, so there is nothing to spawn. Returned as 501 (not implemented) because the template configuration itself is incomplete — fix the template definition rather than retrying the call.

Source

Thrown at server/src/services/tool-gateway.ts:2640

    }
    const resolved = await secrets.resolveUserSecretValue(connection.companyId, {
      definitionId: secret.userSecretDefinitionId,
      responsibleUserId: grant.subjectUserId,
      version: ref.versionSelector ?? "latest",
      required: ref.required ?? true,
    }, accessContext);
    if (!resolved) {
      throw new ToolGatewayHttpError(422, "Personal credential is not configured", "user_secret_missing", {
        connectionId: connection.id,
        grantId: grant.id,
        credential: configPath,
      });
    }
    return resolved.value;
  }

  async function maybeRefreshPaperclipCloudGoogleGrant(
    session: ToolGatewaySession,
    connection: typeof toolConnections.$inferSelect,
    grant: typeof connectionGrants.$inferSelect,
  ): Promise<typeof connectionGrants.$inferSelect> {
    const oauth = asRecord(asRecord(connection.config)?.oauth);
    if (!oauth || !isPaperclipCloudConnectorStrategy(oauth.strategy)) return grant;
    const configuredProfile = oauth.connectorProfile;
    const connectorProfile: GoogleWorkspaceConnectorProfileId = configuredProfile === undefined
      ? "gmail.draft"
      : typeof configuredProfile === "string" && isGoogleWorkspaceConnectorProfileId(configuredProfile)
        ? configuredProfile
        : (() => {
            throw new ToolGatewayHttpError(422, "Google authorization has an invalid connector profile", "google_connector_profile_invalid", {
              connectionId: connection.id,
              grantId: grant.id,
            });
          })();
    const connectorSubject = typeof oauth.connectorSubjectUserId === "string"
      ? oauth.connectorSubjectUserId

View on GitHub (pinned to 5716fe907e)

Solutions

  1. Define an executable command in the local stdio template configuration.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/tool-gateway.ts:2640 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@5716fe907e (2026-08-18). Data as JSON: /api/errors/f8252a3b680496c0. Report an issue: GitHub.