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

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