paperclipai/paperclip · error · Error

Board access is required to resolve companies across the…

Error message

Board access is required to resolve companies across the instance. Use a company ID/prefix for your current company, or run with board authentication.

What it means

Company-scoped lookup failed and the fallback GET /api/companies returned 403 'Board access required', so the CLI cannot enumerate companies to resolve the deletion selector; an auth-scope guard.

Solutions

  1. Use a company ID/prefix for your current company, or authenticate with board credentials.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cli/src/commands/client/company.ts:1968 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/625edf9f1074cf73. Report an issue: GitHub.

Appendix: source

Thrown at cli/src/commands/client/company.ts:1968

          if (!target && ctx.companyId) {
            const scoped = await ctx.api.get<Company>(apiPath`/api/companies/${ctx.companyId}`, { ignoreNotFound: true });
            if (scoped) {
              try {
                target = resolveCompanyForDeletion([scoped], normalizedSelector, by);
              } catch {
                // Fallback to board-wide lookup below.
              }
            }
          }

          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,

View on GitHub (pinned to 120ae5428f)