Version
v5.10.30 (self-hosted)
Environment
Docker (official invoiceninja/invoiceninja-debian:latest
image)
Checklist
Can you replicate the issue on the demo? → Not tested yet.
Have you searched existing issues? → Yes.
Have you inspected the logs in
storage/logs/laravel.log
for any errors? → No relevant errors found.
Describe the bug
Recurring invoices are being created successfully via the API, but they remain in Pending status, and no email is being sent automatically. I’m using the bulk/start
API to trigger them, which works — but the invoices are still pending and require manual approval.
Also, I was unsure whether I needed to manually configure cron on the host, or whether the scheduled jobs are handled inside the Docker container.
I can receive emails from normal invoices though, the smtp is not the problem.
Steps To Reproduce
- Create a recurring invoice using the API (initially in draft).
- Use
POST /api/v1/recurring_invoices/bulk
with{ action: "start", ids: [...] }
to activate them. - Invoice is generated but remains in Pending.
- Email is not sent.
- Cron job (
* * * * * docker exec -u www-data debian_app_1 php artisan schedule:run
) is in place, but I want to confirm it’s the correct approach.
Expected Behavior
- The invoice should become Approved or Sent status.
- The contact should receive the email with the invoice.
- All of this should be automated after triggering via the API.
Additional context
- I’ve confirmed the
subscription-job
,recurring-invoice-job
,auto-bill-job
, andreminder-job
are listed when runningphp artisan schedule:list
. - Running
php artisan schedule:run
manually returnsINFO No scheduled commands are ready to run.
(as expected when jobs aren’t due). - I now understand the crontab line is required to trigger Laravel’s scheduler every minute. Laravel then handles internal scheduling (i.e., “is this job due?”).
Final Question
- Is
status_id: 1
(Draft) the correct starting point for recurring invoices via API? - Is there any way to create recurring invoices directly in Approved state?
- Is the
bulk/start
API method enough to trigger everything (including invoice creation and email), assuming cron is configured correctly?
Cron Config
* * * * * docker exec -u www-data debian_app_1 php artisan schedule:run >> /dev/null 2>&1
Screenshots
Logs
No errors in storage/logs/laravel.log
.