paperclipai/paperclip · error
Catalog skill not found
Error message
Catalog skill not found: ${catalogRef} What it means
The catalog ref lookup GET /api/skills/catalog/ref returned null for the given reference, so no catalog skill matches it.
Solutions
- Verify the catalog reference; list catalog skills and use a valid slug or key.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/client/skills.ts:600 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/b1f19ab4d4e8aeec.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/client/skills.ts:600
ctx: ResolvedClientContext,
opts: CatalogBrowseOptions,
): Promise<CatalogSkill[]> {
const params = new URLSearchParams();
appendQueryParam(params, "kind", opts.kind);
appendQueryParam(params, "category", opts.category);
appendQueryParam(params, "q", opts.query);
const query = params.toString();
return (await ctx.api.get<CatalogSkill[]>(`/api/skills/catalog${query ? `?${query}` : ""}`)) ?? [];
}
async function getCatalogSkill(ctx: ResolvedClientContext, catalogRef: string): Promise<CatalogSkill> {
const ref = catalogRef.trim();
if (!ref) {
throw new Error("Catalog skill reference is required.");
}
const detail = await ctx.api.get<CatalogSkill>(`/api/skills/catalog/ref?ref=${encodeURIComponent(ref)}`);
if (!detail) {
throw new Error(`Catalog skill not found: ${catalogRef}`);
}
return detail;
}
export function resolveCompanySkillReference(
skills: CompanySkillReferenceTarget[],
reference: string,
): CompanySkillReferenceTarget {
const trimmed = reference.trim();
if (!trimmed) {
throw new Error("Skill reference is required.");
}
const byId = skills.find((skill) => skill.id === trimmed);
if (byId) return byId;
const byKey = skills.find((skill) => skill.key === trimmed);
if (byKey) return byKey;View on GitHub (pinned to 120ae5428f)