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
- 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.