Fixes for Cursor apps
new row violates row-level security policy for table
LovableBoltCursorDatabase / Supabase RLS
new row violates row-level security policy for table "profiles" (code 42501)LovableBoltCursorDatabase / Supabase RLS
Supabase service_role key exposed in frontend code
LovableBoltv0CursorEnv vars & leaked keys
service_role key found in the JS bundle / NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEYLovableBoltv0CursorEnv vars & leaked keys
OpenAI / Stripe secret key leaked in the browser
LovableBoltv0ReplitCursorEnv vars & leaked keys
sk-... or sk_live_... visible in DevTools network tab or page sourceLovableBoltv0ReplitCursorEnv vars & leaked keys
Environment variable is undefined in production
Cursorv0BoltEnv vars & leaked keys
process.env.X is undefined / import.meta.env.VITE_X is undefined after deployCursorv0BoltEnv vars & leaked keys
Magic link / OAuth login redirects to localhost:3000
LovableBoltv0CursorAuth
After clicking the email link or Google login, the browser opens http://localhost:3000LovableBoltv0CursorAuth
Error 400: redirect_uri_mismatch (Google sign-in)
CursorReplitBoltAuth
Error 400: redirect_uri_mismatch — The redirect URI in the request does not match the ones authorizedCursorReplitBoltAuth
Stripe webhook: No signatures found matching the expected signature
CursorBoltReplitv0Payments
StripeSignatureVerificationError: No signatures found matching the expected signature for payloadCursorBoltReplitv0Payments
Payment succeeds but the user isn't upgraded
LovableBoltCursorPayments
Stripe shows the payment as succeeded but the app still shows the free planLovableBoltCursorPayments
No such price / No such customer (test vs live mode mix-up)
CursorBoltv0LovablePayments
StripeInvalidRequestError: No such price: 'price_...'CursorBoltv0LovablePayments
Vercel build fails: Type error / ESLint errors (works locally)
Cursorv0BoltDeploys
Failed to compile. Type error: ... / Error: Command "npm run build" exited with 1Cursorv0BoltDeploys
CORS error: blocked by CORS policy: No 'Access-Control-Allow-Origin' header
CursorReplitBoltv0Deploys
Access to fetch at 'https://api...' from origin 'https://...' has been blocked by CORS policyCursorReplitBoltv0Deploys
Postgres: too many connections / remaining connection slots are reserved
Cursorv0ReplitPerformance
FATAL: sorry, too many clients already / remaining connection slots are reservedCursorv0ReplitPerformance
App is slow: dozens of database calls per page (N+1 queries)
LovableBoltCursorv0Performance
Page takes 3–10s; network tab shows many identical requestsLovableBoltCursorv0Performance
Too many re-renders / useEffect infinite loop
LovableBoltv0CursorPerformance
Error: Too many re-renders. React limits the number of renders / Maximum update depth exceededLovableBoltv0CursorPerformance
Hydration failed because the server rendered HTML didn't match the client
v0CursorDeploys
Error: Hydration failed because the server rendered HTML didn't match the clientv0CursorDeploys
OpenAI 429 'You exceeded your current quota' or a surprise AI bill
CursorReplitBoltLovableEnv vars & leaked keys
429: You exceeded your current quota, please check your plan and billing detailsCursorReplitBoltLovableEnv vars & leaked keys
.env file committed to GitHub
CursorReplitBoltEnv vars & leaked keys
GitHub secret scanning alert / .env visible in a public repoCursorReplitBoltEnv vars & leaked keys
Postgres error: relation "public.xyz" does not exist
LovableBoltCursorv0Database / Supabase RLS
ERROR: 42P01: relation "public.profiles" does not exist / PostgREST could not find the tableLovableBoltCursorv0Database / Supabase RLS
Supabase "permission denied for table" (42501) on a new table
LovableBoltCursorv0ReplitDatabase / Supabase RLS
{"code":"42501","message":"permission denied for table your_table","hint":"Grant the required privileges to thLovableBoltCursorv0ReplitDatabase / Supabase RLS