{"record":{"id":"7d914bf008fc4dfe","repo":"paperclipai/paperclip","slug":"failed-to-create-board-token","errorCode":null,"errorMessage":"Failed to create board token","messagePattern":"Failed to create board token","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"cli/src/commands/client/connect.ts","lineNumber":98,"sourceCode":"    command: \"paperclipai connect\",\n  });\n  const boardApi = new PaperclipApiClient({ apiBase, apiKey: boardLogin.token });\n  const companies = (await boardApi.get<Company[]>(\"/api/companies\")) ?? [];\n\n  const persona = await choosePersona(opts.persona);\n  const profileName = opts.profile?.trim() || await askProfileName(resolvedProfile.name);\n  const apiKeyEnvVarName = opts.apiKeyEnvVarName?.trim() || \"PAPERCLIP_API_KEY\";\n\n  if (persona === \"board\") {\n    const company = await chooseCompany(companies, opts.companyId ?? resolvedProfile.profile.companyId, {\n      optional: true,\n    });\n    const tokenName = opts.tokenName?.trim() || `cli-board-${new Date().toISOString()}`;\n    const key = await boardApi.post<CreatedBoardKey>(\"/api/board-api-keys\", createBoardApiKeySchema.parse({\n      name: tokenName,\n      requestedCompanyId: company?.id ?? null,\n    }));\n    if (!key) throw new Error(\"Failed to create board token\");\n    upsertProfile(profileName, {\n      apiBase,\n      companyId: company?.id,\n      persona: \"board\",\n      agentId: \"\",\n      agentName: \"\",\n      apiKeyEnvVarName,\n      tokenName: key.name,\n      tokenId: key.id,\n      tokenCreatedAt: key.createdAt,\n    }, opts.context);\n    setCurrentProfile(profileName, opts.context);\n    p.outro(pc.green(`Connected profile '${profileName}' as board.`));\n    return {\n      ok: true,\n      profile: profileName,\n      persona: \"board\",\n      apiBase,","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/cli/src/commands/client/connect.ts#L80-L116","documentation":"The board token creation call in connectWizard returned a falsy result, so the wizard has no token to install into the profile; a sentinel null-guard on the API response.","triggerScenarios":"Thrown at cli/src/commands/client/connect.ts:98 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check API base URL and credentials, then retry; inspect server logs if it persists."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}