paperclipai/paperclip · error · HttpError
RESPONSIBLE_USER_UNAUTHORIZED
RESPONSIBLE_USER_UNAUTHORIZED
Error message
Responsible user is not authorized for write access
What it means
Responsible-user authorization sentinel (code RESPONSIBLE_USER_UNAUTHORIZED) raised from assertCompanyAccess: the responsible user an agent acts on behalf of is not in the intersection of users authorized for this company's write access. In enforce mode the request is denied; in shadow mode only a warning is logged.
Source
Thrown at server/src/routes/authz.ts:23
import { responsibleUserAuthzShadowMode } from "../services/authorization.js";
function throwOrShadowResponsibleUserCompanyAccessDeny(
req: Request,
companyId: string,
code: "RESPONSIBLE_USER_UNAUTHORIZED" | "RESPONSIBLE_USER_UNAVAILABLE",
message: string,
) {
logger.warn({
authzMode: responsibleUserAuthzShadowMode() ? "shadow" : "enforce",
code,
action: "company_access",
companyId,
actorAgentId: req.actor.agentId ?? null,
responsibleUserId: req.actor.onBehalfOfUserId ?? null,
method: req.method,
}, "responsible-user company access intersection denied");
if (responsibleUserAuthzShadowMode()) return;
throw new HttpError(403, message, { code });
}
export function assertAuthenticated(req: Request) {
if (req.actor.type === "none") {
throw unauthorized();
}
}
export function assertBoard(req: Request) {
if (req.actor.type !== "board") {
throw forbidden("Board access required");
}
}
export function hasBoardOrgAccess(req: Request) {
if (req.actor.type !== "board") {
return false;
}View on GitHub (pinned to 120ae5428f)
Solutions
- Grant the company's responsible user write access, or choose a different actor with write permission.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/routes/authz.ts:23 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/54877ddaeb9ab255.
Report an issue: GitHub.