paperclipai/paperclip · error · Error
No company found for selector
Error message
No company found for selector '${normalizedSelector}'. What it means
After scoped and board-wide lookups, no company matched the normalized selector by ID or prefix, so company delete has no target.
Solutions
- Check the selector; use a valid company ID or issue prefix from `paperclipai company list`.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/client/company.ts:1977 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/7ffd67e0dad8d5d0.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/client/company.ts:1977
}
}
if (!target) {
try {
const companies = (await ctx.api.get<Company[]>("/api/companies")) ?? [];
target = resolveCompanyForDeletion(companies, normalizedSelector, by);
} catch (error) {
if (error instanceof ApiRequestError && error.status === 403 && error.message.includes("Board access required")) {
throw new Error(
"Board access is required to resolve companies across the instance. Use a company ID/prefix for your current company, or run with board authentication.",
);
}
throw error;
}
}
if (!target) {
throw new Error(`No company found for selector '${normalizedSelector}'.`);
}
assertDeleteConfirmation(target, opts);
await ctx.api.delete<{ ok: true }>(apiPath`/api/companies/${target.id}`);
printOutput(
{
ok: true,
deletedCompanyId: target.id,
deletedCompanyName: target.name,
deletedCompanyPrefix: target.issuePrefix,
},
{ json: ctx.json },
);
} catch (err) {
handleCommandError(err);
}View on GitHub (pinned to 120ae5428f)