SaaS Troubleshooting
Fix common issues specific to SaaS mode — tenants, subscriptions, domains, and Stripe integration.
For general troubleshooting (installation, email, OAuth, performance), see the main Troubleshooting page.
Tenant Issues
| Problem | Solution |
|---|---|
| Tenant cannot access their board | Check tenant status — may be suspended or pending payment |
| Tenant sees "Suspended" page | Subscription expired. They need to resubscribe, or unsuspend manually |
| Tenant cannot sign up | Check registration mode (open vs invite-only) in Platform Settings |
| Signup payment fails | Verify Stripe keys are correct. Check Stripe Dashboard for error details |
Login Issues
| Problem | Solution |
|---|---|
| Super Admin can't log in | Verify your email and password. Use the Forgot Password link to reset. Check that your account has Super Admin role in the database. |
| Tenant admin can't log in | Check that the tenant's status is not Suspended. Verify their email is confirmed. |
| "419 Page Expired" on login | Refresh the page and try again. Clear browser cookies for the site. |
| Social login not working for tenants | Verify OAuth credentials are configured at the platform level in Super Admin > Platform Settings > OAuth Providers. |
Subscription Issues
| Problem | Solution |
|---|---|
| Trial not expiring | Verify the cron job is running (see Cron Jobs) |
| Payment not processing | Check Stripe API keys. Review Stripe Dashboard for payment errors |
| Plan change not working | Verify Stripe Price IDs are correct for the plan |
| Invoices show wrong amount | Check plan pricing in your Stripe Dashboard |
Domain Issues
| Problem | Solution |
|---|---|
| Domain stuck on "Pending" | Tenant needs to add DNS records. Click "Check Status" to re-verify |
| SSL not provisioning | DNS must be verified first. Check domain event log for errors |
| Domain shows "Failed" | Review domain event log. Try "Retry Integration" or "Reprovision" |
| cPanel connection fails | Verify cPanel credentials and hostname. Click "Test Connection" |
| Cloudflare connection fails | Verify API token and Zone ID. Ensure token has correct permissions |
Email Issues
| Problem | Solution |
|---|---|
| Tenants not receiving lifecycle emails | Check Platform Settings > SMTP configuration. Verify templates are enabled |
| Trial expiry emails not sending | Verify the cron job is running |
| Duplicate emails being sent | Check email logs for double-sends. May indicate a webhook processing issue |
Cron Job Issues
| Problem | Solution |
|---|---|
| Trial expiry emails not sending | The cron job is likely not running. Verify with php artisan schedule:run via SSH. See Cron Jobs. |
| Scheduled tenant deletions not processing | The cron job handles pending deletions after the 7-day grace period. Ensure the cron is active. |
| Subscription status not updating automatically | Stripe webhooks handle real-time updates, but the cron job handles periodic checks. Verify both are working. |
command not found in cron | Use the full path to PHP, e.g., /usr/bin/php /path/to/artisan schedule:run |
Stripe Webhook Issues
Stripe sends webhooks to notify Votlie of payment events. If webhooks are not working:
- Check that your webhook endpoint URL is correct in Stripe Dashboard:
https://yourdomain.com/api/stripe/webhook
- Verify the webhook signing secret matches what is configured in Votlie
- Check Stripe Dashboard > Developers > Webhooks for failed delivery attempts
- Review
storage/logs/laravel.logfor webhook processing errors
SaaS FAQ
Can tenants customize their own board? Yes. Tenant admins have full access to the theme editor, categories, statuses, settings, and email configuration for their board. They can customize branding, colors, logos, and layout to match their own product.
Can tenants use their own SMTP? Yes. Tenant admins can configure board-level SMTP settings in their admin panel that override the platform default. This allows tenants to send emails from their own domain.
What happens when a tenant is deleted? All tenant data is permanently removed — users, features, votes, comments, settings, and custom domains. Scheduled deletions have a 7-day grace period during which the deletion can be cancelled. Immediate deletions cannot be undone.
Can I offer a free plan? Yes. Create a plan with a $0 price. Free plans do not require Stripe Price IDs. Tenants selecting a free plan have their board created immediately without going through Stripe Checkout.
Can tenants have multiple products?
Yes, if the multi-product feature is included in their plan limits (controlled by Max Products in plan settings). Each plan can define how many product boards a tenant is allowed to create.
What happens if Stripe is down? Existing tenants continue to work normally. New signups and plan changes will fail until Stripe recovers. No data is lost. Stripe webhooks that fail to deliver are retried automatically by Stripe.
How do I migrate from Regular License to Extended License?
Purchase the Extended License upgrade from CodeCanyon. Then update your license key in the application settings. Run any required database migrations (php artisan migrate). The SaaS features (multi-tenancy, plans, tenant management) will become available. Your existing board data is preserved and becomes the first tenant or the platform itself, depending on the migration path.
Getting Help
If you've tried everything here and still have issues:
- Make sure you have the latest version
- Check your error logs for specific messages
- Verify the cron job is running
- Contact support through CodeCanyon with detailed information