Troubleshooting

Common messages and fixes.

Message or symptomCause and fix
Can't reach database server during buildMigrations ran at build time. Use keystone build --no-ui && next build to build and npm run migrate && next start to start.
The storefront shows no showsSetup has not been run, or no show is published. Run setup from the sidebar card or publish a draft show.
Payment form never appearsNEXT_PUBLIC_STRIPE_KEY is missing or the Stripe provider is not active.
Order stays pending_paymentThe browser did not return and the webhook is not reaching the app. Check STRIPE_WEBHOOK_SECRET and the endpoint URL, then call the hold sweeper.
Seats stay held after checkout is abandonedThe hold sweeper is not scheduled. Call POST /api/cron/expire-holds with CRON_SECRET every minute.
Refund asks for approvalIt is above approvalThresholdCents. A different user approves it in Approvals.
Sign-up page is closedPUBLIC_SIGNUPS_ALLOWED is not true. Staff are added by an admin.