Common Issues¶
The most frequent "why isn't this working?" moments and how to fix them.
Emails are not being sent¶
Symptom: customers don't get invoices, welcome emails or ticket replies.
Checklist:
- Is SMTP configured? Until you set it up, the mailer defaults to
logand nothing is actually sent. See Configure Email. - Send a test email from Settings → Email. Read the error it shows.
- Check the log — failed sends are recorded in
storage/logs/laravel.log. - Is the queue worker running? Emails are queued. If no worker is processing the queue, they pile up unsent. See Scheduled Commands.
- Landing in spam? Set up SPF, DKIM and DMARC for your sending domain, or use a transactional email provider.
Provisioning did not happen¶
Symptom: an invoice is paid but no hosting account was created (service stays Pending, or shows Active with no real account).
Checklist:
- Does the product have a server + module? A product set to Custom / None will never auto-provision. Edit the product and assign a server.
- What is the product's auto-setup? If it's manual, you must accept each order under Orders. If it's on payment, paying triggers provisioning.
- Test the server connection — Configuration → Servers → (your server) → Test Connection. Bad credentials or a blocked API port is the usual cause.
- Check the retry queue — failed provisioning jobs are retried automatically every few minutes, and permanent failures raise an admin alert. Look at the module log for the exact API error.
- Cron running? The retry runner only fires if the scheduler is running.
The cron / scheduler isn't running¶
Symptom: invoices aren't generated, reminders don't go out, suspensions never happen, provisioning isn't retried.
-
Confirm the cron line exists for the web user (
crontab -e): -
On Docker, the scheduler runs inside the container automatically — check the container is up.
- Test it by hand:
php artisan schedule:runshould list tasks it ran.
A customer paid by bank transfer but the invoice is still unpaid¶
Bank-transfer payments are manual. The customer submits a payment notification; you approve it under Billing → Payment Notifications, which marks the invoice paid and provisions the service. See Payment Gateways → Bank Transfer.
I forgot the admin password¶
Reset it from the server with:
php artisan tinker
>>> $a = App\Models\Admin::where('username','admin')->first();
>>> $a->password = Hash::make('a-new-strong-password'); $a->save();
(Adjust the username if yours differs.)
The customer portal shows a 500 error¶
- Set
APP_DEBUG=truetemporarily in.envto see the real error, then turn it off again — never leave debug on in production. - Check
storage/logs/laravel.log. - Make sure migrations ran:
php artisan migrate --force. - Clear caches:
php artisan optimize:clear.
Still stuck?¶
- Search or ask on the community forum
- Open a GitHub issue with the exact
error from
storage/logs/laravel.logand steps to reproduce