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

  1. 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.