| Setting prod and preview env vars to the same value | Test data hits production systems | Use --context scoping |
Missing NODE_VERSION in [build.environment] | Build drifts when default image upgrades | Pin Node version explicitly |
| Bundling secrets into client bundles | Build fails secrets scanning | Use server-only env vars; whitelist NEXT_PUBLIC_* only |
| Direct prod deploy without preview | Bad release with no review path | Always preview first; promote artifact |
| Stale framework plugin | Adapter lags Next/Astro release | Pin @netlify/plugin-nextjs and bump deliberately |
| Functions exceeding 10 s sync limit | 502 to client | Convert to background function or queue |
| Redirects ordered incorrectly | SPA fallback shadows API routes | Place specific routes before /* catch-all |
| Forgetting to bust CDN on header-only changes | Old headers cached at edge | netlify deploy always invalidates; verify with curl -I |
Using netlify link in CI | Brittle; creates .netlify/state.json | Use NETLIFY_SITE_ID env var instead |