{"record":{"id":"89537311cf0453fb","repo":"paperclipai/paperclip","slug":"createperrunsecret-requires-a-non-empty-owneruid","errorCode":null,"errorMessage":"createPerRunSecret requires a non-empty ownerUid","messagePattern":"createPerRunSecret requires a non-empty ownerUid","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/plugins/sandbox-providers/kubernetes/src/secret-manager.ts","lineNumber":17,"sourceCode":"import type { KubeClients } from \"./kube-client.js\";\n\nexport interface CreatePerRunSecretInput {\n  namespace: string;\n  secretName: string;\n  runId: string;\n  ownerKind: string;\n  ownerApiVersion: string;\n  ownerName: string;\n  ownerUid: string;\n  bootstrapToken: string;\n  adapterEnv: Record<string, string>;\n}\n\nexport async function createPerRunSecret(clients: KubeClients, input: CreatePerRunSecretInput): Promise<void> {\n  if (!input.ownerUid) {\n    throw new Error(\"createPerRunSecret requires a non-empty ownerUid\");\n  }\n  if (\"BOOTSTRAP_TOKEN\" in input.adapterEnv) {\n    throw new Error(\"adapterEnv must not contain BOOTSTRAP_TOKEN (reserved key)\");\n  }\n  await clients.core.createNamespacedSecret({\n    namespace: input.namespace,\n    body: {\n      apiVersion: \"v1\",\n      kind: \"Secret\",\n      type: \"Opaque\",\n      metadata: {\n        name: input.secretName,\n        namespace: input.namespace,\n        labels: {\n          \"paperclip.io/run-id\": input.runId,\n          \"paperclip.io/managed-by\": \"paperclip-k8s-plugin\",\n        },\n        ownerReferences: [","sourceCodeStart":1,"sourceCodeEnd":35,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/packages/plugins/sandbox-providers/kubernetes/src/secret-manager.ts#L1-L35","documentation":"Error \"createPerRunSecret requires a non-empty ownerUid\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at packages/plugins/sandbox-providers/kubernetes/src/secret-manager.ts:17 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-empty ownerUid (the UID of the owning job/sandbox) to createPerRunSecret."],"exampleFix":null,"handlingStrategy":null,"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"}