paperclipai/paperclip · error

PAPERCLIP_EXECUTION_MODE must be "kubernetes" or "any" (got

Error message

PAPERCLIP_EXECUTION_MODE must be "kubernetes" or "any" (got "${raw}").

What it means

Mode guard in parseExecutionPolicyBootstrapEnv: PAPERCLIP_EXECUTION_MODE is set but is neither 'kubernetes' nor 'any'. An unrecognized mode fails startup loudly so a typo cannot silently fall back to allowing local execution.

Source

Thrown at server/src/services/execution-policy-bootstrap.ts:76

    .split(",")
    .map((s) => s.trim())
    .filter((s) => s.length > 0);
  return items.length > 0 ? items : undefined;
}

/**
 * Parse the forced-execution-mode env config. Returns null when execution is
 * unrestricted (no env, or `PAPERCLIP_EXECUTION_MODE=any`). Throws on an
 * unrecognized mode so a misconfigured deployment fails loudly instead of
 * silently allowing local execution.
 */
export function parseExecutionPolicyBootstrapEnv(
  env: ExecutionPolicyBootstrapEnv,
): ExecutionPolicyBootstrap | null {
  const raw = env.PAPERCLIP_EXECUTION_MODE?.trim();
  if (!raw || raw === "any") return null;
  if (raw !== "kubernetes") {
    throw new Error(
      `PAPERCLIP_EXECUTION_MODE must be "kubernetes" or "any" (got "${raw}").`,
    );
  }

  const kubernetesConfig: KubernetesEnvironmentConfigInput = {
    // inCluster defaults to false (matches the plugin schema default); an
    // in-cluster cloud deployment sets PAPERCLIP_K8S_IN_CLUSTER=true.
    inCluster: parseBool(env.PAPERCLIP_K8S_IN_CLUSTER) ?? false,
  };

  const backend = env.PAPERCLIP_K8S_BACKEND?.trim();
  if (backend) {
    if (backend !== "job" && backend !== "sandbox-cr") {
      throw new Error(
        `PAPERCLIP_K8S_BACKEND must be "job" or "sandbox-cr" (got "${backend}").`,
      );
    }
    kubernetesConfig.backend = backend;

View on GitHub (pinned to 120ae5428f)

Solutions

  1. Set PAPERCLIP_EXECUTION_MODE to "kubernetes" or "any".
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/execution-policy-bootstrap.ts:76 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/9f815539c5f333a6. Report an issue: GitHub.