– I see “Unauthorized” on admin pages
– Ensure you’re logged in with an account whose role is `ADMIN`. Promote a user in the DB if needed.
– Stripe checkout doesn’t start
– Confirm `STRIPE_SECRET_KEY` and `APP_BASE_URL` are set. The `create-session` API currently allows only ADMIN to initiate sessions (demo lock). Adjust the role check for real users.
– Webhook signature verification failed
– Verify `STRIPE_WEBHOOK_SECRET`. When testing locally, use Stripe CLI to forward events and copy the printed secret.
– Cloudinary uploads fail
– Ensure both server (API key/secret) and client (`NEXT_PUBLIC_*`) variables are set. If using an unsigned preset, check the name and that it’s allowed for the target folder.
– Prisma migrate errors
– Confirm MySQL is running and `DATABASE_URL` is correct. Try `npx prisma generate` and re-run the migration.
– Images not loading
– Use `https://res.cloudinary.com/…` URLs or local images under `public/`. The Next.js image config permits Cloudinary hosts.