{"record":{"id":"97830ed1df772172","repo":"paperclipai/paperclip","slug":"only-board-users-can-view-feedback-trace-bundles","errorCode":null,"errorMessage":"Only board users can view feedback trace bundles","messagePattern":"Only board users can view feedback trace bundles","errorType":"http","errorClass":null,"httpStatus":403,"severity":"error","filePath":"server/src/routes/issues.ts","lineNumber":12771,"sourceCode":"        });\n        const approval = readObject(approvalResult);\n        const executionStatus = readToolActionExecutionStatus(approval.status);\n        if (executionStatus) {\n          const currentResult = readObject(interaction.result);\n          continuationInteraction = {\n            ...interaction,\n            result: {\n              ...currentResult,\n              toolAction: {\n                version: 1,\n                status: executionStatus,\n                errorMessage: readNonEmptyString(approval.error),\n                resultSummary: readNonEmptyString(approval.resultSummary),\n                updatedAt: new Date().toISOString(),\n              },\n            } as typeof interaction.result,\n          };\n        }\n      }\n      if (\n        interaction.kind === \"request_confirmation\"\n        && interaction.status === \"accepted\"\n        && typeof secretProposal?.proposalId === \"string\"\n      ) {\n        const resolvedByUserId = actor.actorType === \"user\" ? actor.actorId : \"board\";\n        try {\n          if (opts.approveSecretProposal) {\n            await opts.approveSecretProposal({\n              companyId: issue.companyId,\n              issueId: issue.id,\n              interactionId: interaction.id,\n              proposalId: secretProposal.proposalId,\n              actor: { agentId: actor.agentId, userId: actor.actorType === \"user\" ? actor.actorId : null },\n            });\n          } else {\n            const proposal = await secretProposals.getById(issue.companyId, secretProposal.proposalId);","sourceCodeStart":12753,"sourceCodeEnd":12789,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/routes/issues.ts#L12753-L12789","documentation":"403 guard on GET /feedback-traces/:traceId (trace bundles). Fires when the actor is not a board user; only board users may download/view feedback trace bundles.","triggerScenarios":"Thrown at server/src/routes/issues.ts:11759 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"}