FAQ’s & Troubleshooting

– 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.