paperclipai/paperclip · error

companyId and message are required

Error message

companyId and message are required

What it means

Error "companyId and message are required" thrown in paperclipai/paperclip.

Solutions

  1. Include the required field(s) in the request path, query, or body as named by the error message, then retry.
  2. Check the API contract in packages/shared validators for the exact required shape of this endpoint.

When it happens

Trigger: Thrown at server/src/routes/board-chat.ts:130 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/a85b806c2c43e157. Report an issue: GitHub.

Appendix: source

Thrown at server/src/routes/board-chat.ts:130

    // IS the machine operator: local_trusted is loopback-only single-operator
    // by construction (see server/src/index.ts boot guards). Refuse everywhere
    // else rather than lending the server's shell to remote users.
    if (opts.deploymentMode !== "local_trusted") {
      res.status(403).json({
        error: "Board chat is only available on local single-operator instances",
        code: "DEPLOYMENT_MODE_UNSUPPORTED",
      });
      return;
    }

    const { companyId, message, taskId } = req.body as {
      companyId?: string;
      message?: string;
      taskId?: string;
    };

    if (!companyId || !message) {
      res.status(400).json({ error: "companyId and message are required" });
      return;
    }

    // The body-supplied companyId must belong to the authenticated actor —
    // it scopes issue reads/writes below and is exported to the subprocess.
    assertCompanyAccess(req, companyId);

    // Back-pressure: each request holds a subprocess + SSE stream for up to
    // 2 minutes; cap simultaneous spawns instead of forking without bound.
    if (liveBoardChats >= MAX_CONCURRENT_BOARD_CHATS) {
      res.status(429).json({
        error: "Too many concurrent board chats — retry shortly",
        code: "BOARD_CHAT_BUSY",
      });
      return;
    }

    const issueSvc = issueService(db);

View on GitHub (pinned to 120ae5428f)