{"record":{"id":"dc7bdbecd8dbfe84","repo":"paperclipai/paperclip","slug":"paperclip-k8s-egress-mode-must-be-cilium-or-sta","errorCode":null,"errorMessage":"PAPERCLIP_K8S_EGRESS_MODE must be \"cilium\" or \"standard\" (got \"${egressMode}\").","messagePattern":"PAPERCLIP_K8S_EGRESS_MODE must be \"cilium\" or \"standard\" \\(got \"(.+?)\"\\)\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/src/services/execution-policy-bootstrap.ts","lineNumber":100,"sourceCode":"    // inCluster defaults to false (matches the plugin schema default); an\n    // in-cluster cloud deployment sets PAPERCLIP_K8S_IN_CLUSTER=true.\n    inCluster: parseBool(env.PAPERCLIP_K8S_IN_CLUSTER) ?? false,\n  };\n\n  const backend = env.PAPERCLIP_K8S_BACKEND?.trim();\n  if (backend) {\n    if (backend !== \"job\" && backend !== \"sandbox-cr\") {\n      throw new Error(\n        `PAPERCLIP_K8S_BACKEND must be \"job\" or \"sandbox-cr\" (got \"${backend}\").`,\n      );\n    }\n    kubernetesConfig.backend = backend;\n  }\n\n  const egressMode = env.PAPERCLIP_K8S_EGRESS_MODE?.trim();\n  if (egressMode) {\n    if (egressMode !== \"cilium\" && egressMode !== \"standard\") {\n      throw new Error(\n        `PAPERCLIP_K8S_EGRESS_MODE must be \"cilium\" or \"standard\" (got \"${egressMode}\").`,\n      );\n    }\n    kubernetesConfig.egressMode = egressMode;\n  }\n\n  const runtimeClassName = env.PAPERCLIP_K8S_RUNTIME_CLASS_NAME?.trim();\n  if (runtimeClassName) kubernetesConfig.runtimeClassName = runtimeClassName;\n\n  const namespacePrefix = env.PAPERCLIP_K8S_NAMESPACE_PREFIX?.trim();\n  if (namespacePrefix) kubernetesConfig.namespacePrefix = namespacePrefix;\n\n  const imageRegistry = env.PAPERCLIP_K8S_IMAGE_REGISTRY?.trim();\n  if (imageRegistry) kubernetesConfig.imageRegistry = imageRegistry;\n\n  const rpcTimeoutMs = parsePositiveIntMs(env.PAPERCLIP_K8S_RPC_TIMEOUT_MS);\n  if (rpcTimeoutMs !== undefined) kubernetesConfig.timeoutMs = rpcTimeoutMs;\n","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/services/execution-policy-bootstrap.ts#L82-L118","documentation":"Egress guard in parseExecutionPolicyBootstrapEnv: PAPERCLIP_K8S_EGRESS_MODE is set but is neither 'cilium' nor 'standard'. The network-egress enforcement style would be ambiguous, so startup fails instead of guessing.","triggerScenarios":"Thrown at server/src/services/execution-policy-bootstrap.ts:100 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set PAPERCLIP_K8S_EGRESS_MODE to \"cilium\" or \"standard\"."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}