paperclipai/paperclip · error
Attachment is empty
Error message
Attachment is empty
What it means
422 from issue attachment upload. Fires when the uploaded file's buffer is zero-length (empty body/file); empty attachments are rejected rather than stored as placeholder objects.
Source
Thrown at server/src/routes/issues.ts:13685
issue,
surface: "issue.comment.create",
requestedValue: readNonEmptyString(req.body.onBehalfOfUserId),
});
await denyIssueWrite(req, res, issue, "issue_write_attribution_spoof_rejected");
return;
}
const commentAccessDecision = await assertAgentIssueCommentAllowed(req, res, issue);
if (!commentAccessDecision) return;
const commentAuthorizationReason = issueWriteAuthorizationReason(req, commentAccessDecision);
if (!assertStructuredCommentFieldsAllowed(req, res, {
presentation: req.body.presentation,
metadata: req.body.metadata,
})) return;
const closedExecutionWorkspace = await getClosedIssueExecutionWorkspace(issue);
const actor = getActorInfo(req);
const commentPresentation = req.body.presentation ??
await deriveRecoveryCommentPresentation(req, issue.companyId, req.body.body);
const reopenRequested = req.body.reopen === true;
const resumeRequested = req.body.resume === true;
const interruptRequested = req.body.interrupt === true;
const isClosed = isClosedIssueStatus(issue.status);
const isBlocked = issue.status === "blocked";
const crossIssueCommentOnlyGrant =
isClosed &&
(isDirectParentReportDecision(commentAccessDecision) ||
(req.actor.type === "agent" &&
issue.assigneeAgentId !== null &&
issue.assigneeAgentId !== req.actor.agentId &&
!reopenRequested &&
!resumeRequested &&
(isIssueMentionGrantDecision(commentAccessDecision) ||
isDefaultOpenIssueWriteDecision(commentAccessDecision))));
const effectiveReopenRequested = crossIssueCommentOnlyGrant ? false : reopenRequested;
const effectiveResumeRequested = crossIssueCommentOnlyGrant ? false : resumeRequested;
if (View on GitHub (pinned to 01ad858492)
Solutions
- Provide a non-empty value/file for the named field and retry the upload or request.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/routes/issues.ts:12666 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18).
Data as JSON: /api/errors/8ce37750ab7b7bec.
Report an issue: GitHub.