diff --git a/.changeset/fix-cli-team-id-repo-link.md b/.changeset/fix-cli-team-id-repo-link.md new file mode 100644 index 0000000000..efca1b04a5 --- /dev/null +++ b/.changeset/fix-cli-team-id-repo-link.md @@ -0,0 +1,5 @@ +--- +"@workflow/cli": patch +--- + +Fix CLI 401 errors by reading orgId from per-project entry in repo.json for newer Vercel CLI versions diff --git a/packages/cli/src/lib/inspect/vercel-link.ts b/packages/cli/src/lib/inspect/vercel-link.ts index 9226966b3f..61de998061 100644 --- a/packages/cli/src/lib/inspect/vercel-link.ts +++ b/packages/cli/src/lib/inspect/vercel-link.ts @@ -23,10 +23,13 @@ interface RepoProjectConfig { id: string; name: string; directory: string; + /** Per-project orgId — added in vercel/vercel#14967. Prefer this over root-level orgId. */ + orgId?: string; } interface RepoProjectsConfig { - orgId: string; + /** Legacy root-level orgId — older Vercel CLI versions put orgId here. */ + orgId?: string; remoteName: string; projects: RepoProjectConfig[]; } @@ -195,9 +198,16 @@ async function getProjectLinkFromRepoLink( logger.debug(`Found matching repo projects: ${JSON.stringify(projects)}`); if (projects.length === 1) { const project = projects[0]; + // Prefer per-project orgId (vercel/vercel#14967), fall back to + // root-level orgId for older Vercel CLI versions. + const orgId = project.orgId ?? repoLink.repoConfig?.orgId; + if (!orgId) { + logger.debug('No orgId found in repo link project or root config'); + return null; + } return { repoRoot: repoLink.rootPath, - orgId: repoLink.repoConfig.orgId, + orgId, projectId: project.id, projectName: project.name, projectRootDirectory: project.directory,