Support Runbook
1. Partner onboarding
When a lead submits the partner form, it appears on the Partner Leads dashboard. Set status to Contacted after reaching out. When ready, click Convert to venue to create the venue record and send the invite code automatically. Record context in the notes field before converting.
2. Stripe Connect issues
If checkout fails with "payout account may not be fully onboarded yet", the venue has not completed Stripe Connect onboarding. Send the venue owner the onboarding link from the dashboard and verify charges_enabled and payouts_enabled in Stripe before they go live.
3. Refunds
Venue admins can refund orders from /admin/orders. Refunds are processed through Stripe and the ticket status is set to Refunded. Waitlisted fans are notified if the refunded section has a waitlist.
4. Resale marketplace
Enable resale per event under /admin/events/[id]/resale and set the maximum markup percentage. Fans list tickets from /my-tickets. When a resale ticket is sold, the original ticket is transferred to the buyer and a new order is recorded.
5. RBAC and access
Owners can invite admins, marketing, staff, box office, and scanner roles from /admin/team. Each role has scoped permissions. If a user sees 403 errors after an API restart, their JWT signing key may have rotated; have them log out and back in.
6. Checkout failures and seat holds
If a fan reports that a seat disappeared at checkout, it may be held by another browser session. Holds expire after 10 minutes and seats are released automatically. GA over-purchase is blocked by a Redis-backed capacity check; if Redis is unavailable, the API falls back to Postgres. For persistent double-booking, verify that the event's Capacity and Redis counter match in the database.
7. Waitlist and post-event surveys
When a ticket is refunded, waitlisted fans for that section receive an email with a 24-hour redemption link. If a fan says the link is invalid, check that the refund completed and that the token has not expired. Reminder and survey emails are sent automatically by the background outreach service; ensure the service is running and an SMTP provider is configured.
8. Account and access issues
Forgotten passwords can be reset from /admin/forgot-password. If an existing user receives a 403 after an API restart, the JWT signing key may have rotated; ask them to log out and back in. Team invites expire after 7 days and can be resent from /admin/team.
9. Deployment & monitoring
API health is available at /v1/health and should be used for load-balancer health checks and monitoring alerts. Venue admins can view live metrics in /admin/monitoring. The API emits structured JSON logs in production and HTTP request telemetry. Back up PostgreSQL and Redis regularly using the scripts in the API repository and store them off-site.
10. Transactional email and SMTP
Order confirmations, password resets, team invites, waitlist redemption links, and recovery emails require an SMTP provider. We recommend Brevo for the free 300 emails/day tier. Set Smtp__Host, Smtp__Port, Smtp__User, Smtp__Password, Smtp__From, and Smtp__FromName in the API environment. Verify delivery from /admin/go-live with the Send test email button. Alternatives include Mailgun, SendGrid, Postmark, and Amazon SES.
11. Escalation
For platform-level bugs, payment disputes, or partner escalations, file an issue in the StileTurn repository with the venue id, event id, order id, and a description of the incident.