FAQs & 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.