Troubleshooting Guide
Common Issues & Fixes
Solutions to the most common problems encountered with the concert site and school system.
Deployment Issues Porkbun
Page shows old content after uploading
The browser is serving a cached version of the page.
Fix: Hard refresh with Cmd + Shift + R (Mac) or Ctrl + Shift + R (Windows). If still showing old content, clear browser cache or try in incognito mode.
Admin page shows a blank screen or 404 after upload
The admin HTML was updated but the new JS bundle wasn't uploaded, or the old JS bundle wasn't deleted.
Fix: Check the browser console for a 404 error on an admin-xxxxx.js file. Delete the old JS file from Porkbun, upload the new one, then hard refresh.
School page 404 โ page not found
Porkbun is case-sensitive. The folder might be named School/ instead of school/.
Fix: In Porkbun file manager, verify the folder is named exactly school (lowercase). Rename if needed.
JS file loads but features don't work
The HTML was uploaded but references an old JS bundle hash that no longer exists.
Fix: Always upload both the HTML file AND the new JS bundle together. Check the console for 404 errors on asset files.
Concert Registration Issues Concert
Registration not saving to Supabase
The active event may not be loaded, or there is no active event in the DB.
Fix: Open the browser console and look for [DB] log messages. If you see "window._event is null", go to Admin โ Events and make sure there is an active event. Check that the event's active field is set to true in Supabase.
PayPal button not appearing
The site may be in Sandbox mode, or PayPal SDK failed to load.
Fix: Check Admin โ API Config โ Site Mode. If in Sandbox mode, you'll see a green "Simulate Payment" button instead of PayPal. Switch to Live mode for real payments.
Confirmation email not received
EmailJS may have hit its monthly limit (200 free emails/month), or the template is misconfigured.
Fix: Log in to emailjs.com and check the usage dashboard. Verify the "To Email" field in the template is set to {{to_email}} (no spaces). Check the EmailJS email log for error details.
SMS notification not received
SMS may be disabled in admin, or there's a Twilio configuration issue.
Fix: Check Admin โ API Config โ Twilio SMS โ make sure it shows "๐ Enabled". Also check the Supabase Edge Function logs (supabase.com โ Edge Functions โ sms โ Logs) for errors.
Donor/Volunteer not appearing in school DB
The public INSERT policy may be missing, or the schools table RLS is blocking the lookup.
Fix: Open the browser console after a test registration and look for [School DB] messages. If you see an error, run these in the school Supabase SQL editor:
CREATE POLICY "Public can read schools" ON schools FOR SELECT USING (true);
CREATE POLICY "Concert donors can be added publicly" ON donors FOR INSERT WITH CHECK (true);
CREATE POLICY "Concert volunteers can be added publicly" ON volunteers FOR INSERT WITH CHECK (true);
School System Issues School
School admin shows login screen even after logging in
The Supabase auth session has expired (sessions last 1 hour by default).
Fix: Log in again. This is normal behavior โ Supabase sessions expire for security. If this happens too frequently, contact your developer to extend the session duration.
Changes not saving in school admin
Sandbox mode is enabled โ all DB writes are blocked.
Fix: Look for the yellow "โ ๏ธ SANDBOX MODE" banner at the top of the page. Click the "โ ๏ธ Sandbox" button in the sidebar and switch to Live mode.
Attendance page shows no lessons
Enrollments may not have a Day of Week set, so no lessons are auto-generated.
Fix: Go to School โ Enrollments and make sure active enrollments have the Day of Week field filled in. Then return to Attendance and click "Generate from Schedule".
Invoice generation creates no invoices
All active enrollments already have an invoice for the selected month, or there are no active enrollments.
Fix: Check School โ Enrollments โ confirm there are active enrollments. For monthly billing, check if invoices already exist for that month by filtering the invoice list by the period.
Grade upsert fails with a conflict error
The unique constraint on the grades table may be missing.
Fix: Run this in the school Supabase SQL editor:
ALTER TABLE grades ADD CONSTRAINT grades_assessment_student_unique UNIQUE (assessment_id, student_id);
Attendance upsert fails
The unique constraint on the attendance table may be missing.
Fix: Run this in the school Supabase SQL editor:
ALTER TABLE attendance ADD CONSTRAINT attendance_lesson_student_unique UNIQUE (lesson_id, student_id);
Getting Help
Can't find a fix in this guide
Steps to diagnose:
- Open the browser console (F12 โ Console tab) and look for error messages
- Note the exact error text and which page/action caused it
- Check if the issue is in concert or school system, and whether it's a live or sandbox issue
- Contact your developer with the console error and a description of what you were doing