paperclipai/paperclip · error · Error
Company ID is required. Pass --company-id, set…
Error message
Company ID is required. Pass --company-id, set PAPERCLIP_COMPANY_ID, or configure a CLI context default.
What it means
resolveFeedbackCompanyId found neither an explicit --company-id, a context companyId, nor any company from GET /api/companies to default to, so feedback commands have no company scope.
Solutions
- Pass --company-id, set PAPERCLIP_COMPANY_ID, or configure a CLI context default companyId.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/client/feedback.ts:212 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/730e96aea672e066.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/client/feedback.ts:212
const ctx = resolveCommandContext(opts);
printOutput(await ctx.api.get(apiPath`/api/feedback-traces/${traceId}/bundle`), { json: ctx.json });
} catch (err) {
handleCommandError(err);
}
}),
);
}
export async function resolveFeedbackCompanyId(
ctx: ResolvedClientContext,
explicitCompanyId?: string,
): Promise<string> {
const direct = explicitCompanyId?.trim() || ctx.companyId?.trim();
if (direct) return direct;
const companies = (await ctx.api.get<Company[]>("/api/companies")) ?? [];
const companyId = companies[0]?.id?.trim();
if (!companyId) {
throw new Error(
"Company ID is required. Pass --company-id, set PAPERCLIP_COMPANY_ID, or configure a CLI context default.",
);
}
return companyId;
}
export function buildFeedbackTraceQuery(opts: FeedbackTraceQueryOptions, includePayload = true): string {
const params = new URLSearchParams();
if (opts.targetType) params.set("targetType", opts.targetType);
if (opts.vote) params.set("vote", opts.vote);
if (opts.status) params.set("status", opts.status);
if (opts.projectId) params.set("projectId", opts.projectId);
if (opts.issueId) params.set("issueId", opts.issueId);
if (opts.from) params.set("from", opts.from);
if (opts.to) params.set("to", opts.to);
if (opts.sharedOnly) params.set("sharedOnly", "true");
if (includePayload) params.set("includePayload", "true");
const query = params.toString();View on GitHub (pinned to 120ae5428f)