Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

netlify deploy fails with misleading "Project not found" when extensions fetch returns 403 under send_build_bot_token_to_jigsaw (non-Owner / PAT)

Abierto
#8,619 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
20/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
typescript
Área
cli

Línea de trabajo

The failure starts in the extensions fetch against api.netlifysdk.com, which sends the PAT as Netlify-SDK-Build-Bot-Token when the site has send_build_bot_token_to_jigsaw set. Reproduce the two curl calls in the report to confirm the 200 and 403 split, then find where @netlify/config handles that 403 and where the offline fallback produces "Project not found". Done means a non-Owner static deploy succeeds, or the extensions 403 is reported as a permissions problem instead of the link error.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

type: bug
Describe the bug

On an Enterprise team (Okta/SSO), netlify deploy --site <site_id> --dir … --prod --no-build fails even though the site ID is valid and the auth token can successfully GET /api/v1/sites/:id.

With site feature flag send_build_bot_token_to_jigsaw: true, @netlify/config sends the user PAT as Netlify-SDK-Build-Bot-Token to Jigsaw. That call returns 403. The CLI then falls back to offline config resolution and reports:

Error: Project not found. Please rerun "netlify link"

That error is misleading: the project exists and is addressable; linking is not the problem.

Isolated comparison against the same extensions URL
(https://api.netlifysdk.com/team/<account_id>/integrations/installations/meta/<site_id>):

  • Headers Netlify-Config-Mode: cli + User-Agent only → 200 []
  • Same + Netlify-SDK-Build-Bot-Token: <PAT> → 403

Per Netlify roles docs, only Owner can install/uninstall extensions. A Developer (or other non-Owner) can still need to deploy a prebuilt static site. Making extensions fetch hard-fail blocks those deploys and hides the real cause.

Expected: static --dir / --no-build deploy should succeed (or soft-fail extensions to []), and errors should report the extensions 403 / permissions issue—not “Project not found / netlify link”.

Workaround: upload via Sites API zip deploy (POST /api/v1/sites/:id/deploys with Content-Type: application/zip), which does not call Jigsaw.

Steps to reproduce
  1. Use a site with send_build_bot_token_to_jigsaw: true (GET /api/v1/sites/:id?feature_flags=cli).
  2. Authenticate as a non-Owner (e.g. Developer) with a PAT that has SAML team access and can read the site.
  3. Build a static site into dist/ (no Netlify Functions/extensions required).
  4. Run:
npx [email protected] deploy \
  --dir=dist \
  --prod \
  --no-build \
  --debug \
  --site=<site_uuid>
  1. Observe debug warnings about extensions 403, then offline fallback, then:
Error: Project not found. Please rerun "netlify link"
  1. Optionally confirm with curl:
# 200 without build-bot token
curl -sS -o /dev/null -w "%{http_code}\n" \
  -H "Netlify-Config-Mode: cli" \
  -H "User-Agent: Netlify Config (mode:cli) / 25.2.6" \
  "https://api.netlifysdk.com/team/<account_id>/integrations/installations/meta/<site_id>"
# 403 with PAT as build-bot token
curl -sS -o /dev/null -w "%{http_code}\n" \
  -H "Netlify-Config-Mode: cli" \
  -H "User-Agent: Netlify Config (mode:cli) / 25.2.6" \
  -H "Netlify-SDK-Build-Bot-Token: $NETLIFY_AUTH_TOKEN" \
  "https://api.netlifysdk.com/team/<account_id>/integrations/installations/meta/<site_id>"
Configuration

There is no netlify.toml for this project. Deploy is a prebuilt static upload only (--dir=dist --prod --no-build --site=<uuid>). No Netlify Functions, Edge Functions, or Extensions are configured for the site.

Relevant site feature flags (excerpt from GET /api/v1/sites/:id?feature_flags=cli):

{
  "send_build_bot_token_to_jigsaw": true,
  "cli_fetch_integrations": true,
  "auto_install_required_extensions_v2": true
}
Environment

System:
OS: macOS 26.6.2
CPU: (11) arm64 Apple M3 Pro
Memory: 97.36 MB / 18.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.18.0 - ~/node/24.18.0/bin/node
npm: 11.10.1 - ~/npm/11.10.1/bin/npm

Lenguaje dominante
TypeScript
Estrellas
1.9k
Forks
480
Merge medio
1 d 15 h
PR fusionados (30 d)
66

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de netlify/cli

Todos los issues de netlify/cli

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.