paperclipai/paperclip · error · Error

No companies are accessible with this board credential.

Error message

No companies are accessible with this board credential.

What it means

Thrown by chooseCompany when the companies list is empty and the caller marked the selection as required (optional:false). It means the board credential grants access to zero companies.

Source

Thrown at cli/src/commands/client/connect.ts:195

async function askProfileName(defaultName: string): Promise<string> {
  const profile = await p.text({
    message: "Profile name",
    initialValue: defaultName || "default",
  });
  assertNotCancelled(profile);
  const value = String(profile).trim();
  if (!value) throw new Error("Profile name is required");
  return value;
}

async function chooseCompany(
  companies: Company[],
  preferredCompanyId: string | undefined,
  opts: { optional: boolean },
): Promise<Company | null> {
  if (companies.length === 0) {
    if (opts.optional) return null;
    throw new Error("No companies are accessible with this board credential.");
  }
  const preferred = preferredCompanyId ? companies.find((company) => company.id === preferredCompanyId) : null;
  if (companies.length === 1 && !opts.optional) return companies[0] ?? null;
  const selected = await p.select({
    message: opts.optional ? "Default company for this profile" : "Agent company",
    initialValue: preferred?.id ?? companies[0]?.id,
    options: [
      ...(opts.optional ? [{ value: "", label: "(none)" }] : []),
      ...companies.map((company) => ({
        value: company.id,
        label: company.name,
        hint: company.id,
      })),
    ],
  });
  assertNotCancelled(selected);
  if (!selected) return null;
  return companies.find((company) => company.id === selected) ?? null;

View on GitHub (pinned to 67001ec6eb)

Solutions

  1. Create a company in the board UI first, then re-run connect.
  2. Verify the board credential and apiBase are correct (curl GET /api/companies with the token).
  3. Have an admin grant your board user membership in an existing company.
Defensive patterns

Strategy: validation

Validate before calling

const companies = (await boardApi.get('/api/companies')) ?? [];
if (companies.length === 0) {
  throw new Error('No companies accessible; create one in the board UI first.');
}

Prevention

When it happens

Trigger: GET /api/companies (called with the board token) returns [] during an agent-profile connect that requires a company.

Common situations: Brand-new install with no companies created; revoked company membership; board API key scoped to nothing; apiBase pointing at the wrong instance.

Related errors


AI-assisted analysis of paperclipai/paperclip@67001ec6eb (2026-08-12). Data as JSON: /api/errors/445726c528dcbcfd. Report an issue: GitHub.