What broke?
Build broke? Here’s the fix. Plain-English answers for the errors your AI builder, framework, or deploy just threw at you — no computer-science degree required.
People are fixing these right now:
How it works
- Paste the error. Find the message your app, builder, or terminal just gave you — word for word.
- Get the plain-English cause. Every fix starts with what actually went wrong, in words a non-engineer can follow.
- Fix it yourself, or hand your AI the prompt. Follow the short steps, or copy the ready-made prompt on the page and let your AI builder do the repair.
Browse by what broke
Errors cluster in a few familiar places. Start with the one that sounds like your screen right now.
Next.js & React errors
Hydration mismatches, server-component surprises, and the other Next.js and React errors that stop a build cold.
4 fixes
Supabase & databases
Row Level Security denials, missing rows, and connection trouble in Supabase and the databases behind your app.
2 fixes
Deployment failures
Builds that pass on your machine and fail on Vercel, Netlify, and everywhere else you try to ship them.
1 fix
APIs, auth & CORS
Blocked requests, rejected logins, and CORS errors explained in plain English, with the fix that actually unblocks you.
2 fixes
AI builder problems (Lovable, Bolt, Replit)
When Lovable, Bolt, Replit, or another AI builder loops, hallucinates, or breaks something it just fixed.
1 fix
Latest fixes
New fixes are added as builders hit new walls. If your error is here, you are not the first person to see it — and you won’t be stuck with it for long.
-
Too many re-renders: infinite loop caused by useEffect dependencies
A useEffect that sets state listed in its own dependency array loops forever. Fix it with functional updates, values computed during rendering, or a stable object identity with useMemo.
-
Prisma: Can't reach database server / too many connections (serverless)
Prisma P1001 and too-many-connections errors on serverless usually mean you are using a direct connection string. Switch the app to the pooled URL with connection_limit=1 and keep a direct URL for migrations.
-
401 Unauthorized from the OpenAI API (invalid_api_key)
A 401 from OpenAI means the key itself was rejected — wrong, damaged, revoked, or from another project. Verify or regenerate it, keep it server-side only, and test it directly before changing code.
-
Module not found: Failed to resolve import
Module not found in Vite or Next.js is usually a typo, a capitalisation mismatch, a missing install, a moved file, or an @/ alias set up in only one config. Check them in that order.
-
Works locally, fails on Vercel — build or runtime errors after deploy
Works on your machine but fails on Vercel? Triage in order: case-sensitive imports, missing env vars, Node version, and files never committed to git.
-
new row violates row-level security policy for table "<your_table>"
Supabase says a new row violates row-level security policy (42501)? Add a WITH CHECK insert policy, verify auth.uid(), and test as a real user — without disabling RLS.
-
Hydration failed: Text content does not match server-rendered HTML
Hydration failed in Next.js? Find the server vs client mismatch, move dates and window values into useEffect, fix invalid nesting, and rule out extensions.
-
Environment variables are undefined in Next.js (process.env returns undefined)
process.env returning undefined in Next.js? Check the NEXT_PUBLIC_ prefix, .env.local placement, build-time inlining, and the Vercel dashboard — in that order.
-
Access to fetch has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header
Blocked by CORS policy with no Access-Control-Allow-Origin header? The fix is on the API server — set the header, handle preflight, or proxy through your own origin.
-
AI builder stuck in a loop, rewriting the same file over and over
Your Lovable, Bolt, or Replit agent keeps rewriting the same file and breaking things. Stop it, revert to the last working version, and restart with one small change at a time.