{"record":{"id":"e905a0cbf2f0babf","repo":"paperclipai/paperclip","slug":"low-trust-actors-cannot-use-this-control-plane-sur","errorCode":null,"errorMessage":"Low-trust actors cannot use this control-plane surface","messagePattern":"Low-trust actors cannot use this control-plane surface","errorType":"http","errorClass":null,"httpStatus":403,"severity":"error","filePath":"server/src/routes/issues.ts","lineNumber":3234,"sourceCode":"      input.executionWorkspaceSettings !== undefined;\n  }\n\n  async function resolveRunIssueWorkspaceInheritanceSource(\n    companyId: string,\n    actor: ReturnType<typeof getActorInfo>,\n  ): Promise<string | null> {\n    if (actor.actorType !== \"agent\" || !actor.agentId || !actor.runId) return null;\n    const run = await db\n      .select({\n        agentId: heartbeatRuns.agentId,\n        contextSnapshot: heartbeatRuns.contextSnapshot,\n      })\n      .from(heartbeatRuns)\n      .where(and(\n        eq(heartbeatRuns.id, actor.runId),\n        eq(heartbeatRuns.companyId, companyId),\n      ))\n      .then((rows) => rows[0] ?? null);\n    if (!run || run.agentId !== actor.agentId) return null;\n    const context = run.contextSnapshot && typeof run.contextSnapshot === \"object\"\n      ? run.contextSnapshot as Record<string, unknown>\n      : null;\n    if (!context || !readNonEmptyString(context.executionWorkspaceId)) return null;\n    const paperclipIssue = context.paperclipIssue && typeof context.paperclipIssue === \"object\"\n      ? context.paperclipIssue as Record<string, unknown>\n      : null;\n    return readNonEmptyString(context.issueId) ?? readNonEmptyString(paperclipIssue?.id);\n  }\n\n  async function resolveAgentTrustForIssue(\n    input: {\n      agentId: string | null | undefined;\n      runId?: string | null;\n    },\n    companyId: string,\n    issue?: { companyId: string; projectId?: string | null; executionPolicy?: unknown } | null,","sourceCodeStart":3216,"sourceCodeEnd":3252,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/routes/issues.ts#L3216-L3252","documentation":"403 guard from assertLowTrustControlPlaneDenied: the issue's effective trust preset is not 'standard' (low-trust company/project/issue), and low-trust actors are denied this control-plane surface.","triggerScenarios":"Thrown at server/src/routes/issues.ts:3070 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["This is an authorization rule, not a bug: perform the action with an actor that satisfies the stated constraint (board user, the owning agent, or an in-scope resource).","If access should be allowed, verify the actor's credentials/company scope and the resource's ownership before retrying."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}