Recurring invoices not processing

Version ie <v5.12.19>

Environment

Hi,

Recently, recurring invoices have not run, i suspect it has something to do with the cron jobs.

I’m not sure when the issue arose as my invoices only run on the 23rd of the month. I have updated to the latest version of Invoice Ninja.

I referred to the installation guide and updated my existing cron jobs to those in the guide in the hopes that it solved my issue.

Here are my original crons:
cd /home/xxxxx/public_html/invoiceninja && /opt/alt/php82/usr/bin/php -d register_argc_argv=On artisan schedule:run >> /dev/null 2>&1

/home/xxxxx/public_html/invoiceninja && /usr/bin/php -d register_argc_argv=On artisan queue:work --stop-when-empty

these have worked fine for ages.

here is what i updated them to:
cd /home/xxxxx/public_html/invoiceninja && php artisan schedule:run >> /dev/null 2>&1

/home/xxxxx/public_html/invoiceninja && /usr/bin/php -d register_argc_argv=On artisan schedule:run >> /dev/null 2>&1

Here are the last entries of the laravel logs (new users cannot upload attachements)

[2025-08-25 20:12:02] production.ERROR: Class “PDO” not found {“exception”:"[object] (Error(code: 0): Class "PDO" not found at /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php:118)
[stacktrace]
#0 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(269): Illuminate\Database\Connection::getResolver()
#1 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(76): Illuminate\Database\Connectors\ConnectionFactory->createConnection()
#2 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(51): Illuminate\Database\Connectors\ConnectionFactory->createSingleConnection()
#3 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(207): Illuminate\Database\Connectors\ConnectionFactory->make()
#4 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(103): Illuminate\Database\DatabaseManager->makeConnection()
#5 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php(74): Illuminate\Database\DatabaseManager->connection()
#6 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(952): Illuminate\Database\DatabaseServiceProvider->Illuminate\Database\{closure}()
#7 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(832): Illuminate\Container\Container->build()
#8 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\Container\Container->resolve()
#9 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(763): Illuminate\Foundation\Application->resolve()
#10 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\Container\Container->make()
#11 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(1580): Illuminate\Foundation\Application->make()
#12 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(242): Illuminate\Container\Container->offsetGet()
#13 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(210): Illuminate\Support\Facades\Facade::resolveFacadeInstance()
#14 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(355): Illuminate\Support\Facades\Facade::getFacadeRoot()
#15 /home/xxxxx/public_html/invoiceninja/app/Providers/AppServiceProvider.php(70): Illuminate\Support\Facades\Facade::__callStatic()
#16 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Providers\AppServiceProvider->boot()
#17 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#18 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(95): Illuminate\Container\Util::unwrapIfClosure()
#19 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#20 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(696): Illuminate\Container\BoundMethod::call()
#21 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1151): Illuminate\Container\Container->call()
#22 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1132): Illuminate\Foundation\Application->bootProvider()
#23 [internal function]: Illuminate\Foundation\Application->Illuminate\Foundation\{closure}()
#24 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1131): array_walk()
#25 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\Foundation\Application->boot()
#26 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(342): Illuminate\Foundation\Bootstrap\BootProviders->bootstrap()
#27 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(474): Illuminate\Foundation\Application->bootstrapWith()
#28 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Illuminate\Foundation\Console\Kernel->bootstrap()
#29 /home/xxxxx/public_html/invoiceninja/artisan(35): Illuminate\Foundation\Console\Kernel->handle()
#30 {main}
“}
[2025-08-25 20:13:02] production.ERROR: Class “PDO” not found {“exception”:”[object] (Error(code: 0): Class "PDO" not found at /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php:118)
[stacktrace]
#0 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(269): Illuminate\Database\Connection::getResolver()
#1 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(76): Illuminate\Database\Connectors\ConnectionFactory->createConnection()
#2 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(51): Illuminate\Database\Connectors\ConnectionFactory->createSingleConnection()
#3 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(207): Illuminate\Database\Connectors\ConnectionFactory->make()
#4 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(103): Illuminate\Database\DatabaseManager->makeConnection()
#5 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php(74): Illuminate\Database\DatabaseManager->connection()
#6 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(952): Illuminate\Database\DatabaseServiceProvider->Illuminate\Database\{closure}()
#7 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(832): Illuminate\Container\Container->build()
#8 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\Container\Container->resolve()
#9 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(763): Illuminate\Foundation\Application->resolve()
#10 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\Container\Container->make()
#11 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(1580): Illuminate\Foundation\Application->make()
#12 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(242): Illuminate\Container\Container->offsetGet()
#13 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(210): Illuminate\Support\Facades\Facade::resolveFacadeInstance()
#14 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(355): Illuminate\Support\Facades\Facade::getFacadeRoot()
#15 /home/xxxxx/public_html/invoiceninja/app/Providers/AppServiceProvider.php(70): Illuminate\Support\Facades\Facade::__callStatic()
#16 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Providers\AppServiceProvider->boot()
#17 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#18 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(95): Illuminate\Container\Util::unwrapIfClosure()
#19 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#20 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(696): Illuminate\Container\BoundMethod::call()
#21 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1151): Illuminate\Container\Container->call()
#22 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1132): Illuminate\Foundation\Application->bootProvider()
#23 [internal function]: Illuminate\Foundation\Application->Illuminate\Foundation\{closure}()
#24 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1131): array_walk()
#25 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\Foundation\Application->boot()
#26 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(342): Illuminate\Foundation\Bootstrap\BootProviders->bootstrap()
#27 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(474): Illuminate\Foundation\Application->bootstrapWith()
#28 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Illuminate\Foundation\Console\Kernel->bootstrap()
#29 /home/xxxxx/public_html/invoiceninja/artisan(35): Illuminate\Foundation\Console\Kernel->handle()
#30 {main}
“}
[2025-08-25 20:14:02] production.ERROR: Class “PDO” not found {“exception”:”[object] (Error(code: 0): Class "PDO" not found at /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php:118)
[stacktrace]
#0 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(269): Illuminate\Database\Connection::getResolver()
#1 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(76): Illuminate\Database\Connectors\ConnectionFactory->createConnection()
#2 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(51): Illuminate\Database\Connectors\ConnectionFactory->createSingleConnection()
#3 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(207): Illuminate\Database\Connectors\ConnectionFactory->make()
#4 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(103): Illuminate\Database\DatabaseManager->makeConnection()
#5 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php(74): Illuminate\Database\DatabaseManager->connection()
#6 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(952): Illuminate\Database\DatabaseServiceProvider->Illuminate\Database\{closure}()
#7 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(832): Illuminate\Container\Container->build()
#8 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\Container\Container->resolve()
#9 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(763): Illuminate\Foundation\Application->resolve()
#10 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\Container\Container->make()
#11 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(1580): Illuminate\Foundation\Application->make()
#12 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(242): Illuminate\Container\Container->offsetGet()
#13 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(210): Illuminate\Support\Facades\Facade::resolveFacadeInstance()
#14 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(355): Illuminate\Support\Facades\Facade::getFacadeRoot()
#15 /home/xxxxx/public_html/invoiceninja/app/Providers/AppServiceProvider.php(70): Illuminate\Support\Facades\Facade::__callStatic()
#16 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Providers\AppServiceProvider->boot()
#17 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#18 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(95): Illuminate\Container\Util::unwrapIfClosure()
#19 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#20 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(696): Illuminate\Container\BoundMethod::call()
#21 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1151): Illuminate\Container\Container->call()
#22 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1132): Illuminate\Foundation\Application->bootProvider()
#23 [internal function]: Illuminate\Foundation\Application->Illuminate\Foundation\{closure}()
#24 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1131): array_walk()
#25 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\Foundation\Application->boot()
#26 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(342): Illuminate\Foundation\Bootstrap\BootProviders->bootstrap()
#27 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(474): Illuminate\Foundation\Application->bootstrapWith()
#28 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Illuminate\Foundation\Console\Kernel->bootstrap()
#29 /home/xxxxx/public_html/invoiceninja/artisan(35): Illuminate\Foundation\Console\Kernel->handle()
#30 {main}
“}
[2025-08-25 23:05:32] production.ERROR: Browser binary not found. Make sure you download it or set using setChromiumPath(). {“userId”:1,“exception”:”[object] (Beganovich\Snappdf\Exception\BinaryNotFound(code: 0): Browser binary not found. Make sure you download it or set using setChromiumPath(). at /home/xxxxx/public_html/invoiceninja/vendor/beganovich/snappdf/src/Snappdf.php:91)
[stacktrace]
#0 /home/xxxxx/public_html/invoiceninja/vendor/beganovich/snappdf/src/Snappdf.php(238): Beganovich\Snappdf\Snappdf->getChromiumPath()
#1 /home/xxxxx/public_html/invoiceninja/app/Utils/Traits/Pdf/PdfMaker.php(97): Beganovich\Snappdf\Snappdf->generate()
#2 /home/xxxxx/public_html/invoiceninja/app/Http/Controllers/ActivityController.php(160): App\Http\Controllers\ActivityController->makePdf()
#3 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\ActivityController->downloadHistoricalEntity()
#4 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\Routing\Controller->callAction()
#5 /home/xxxxx/public_html/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(21): Illuminate\Routing\ControllerDispatcher->dispatch()
#6 /home/xxxxx/public_html/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingRoutingDispatcher.php(18): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing->Sentry\Laravel\Tracing\Routing\{closure}()
#7 /home/xxxxx/public_html/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(20): Sentry\Laravel\Tracing\Routing\TracingRoutingDispatcher->wrapRouteDispatch()
#8 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(266): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing->dispatch()
#9 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\Routing\Route->runController()
#10 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\Routing\Route->run()
#11 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#12 /home/xxxxx/public_html/invoiceninja/app/Http/Middleware/ValidJson.php(47): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#13 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\Http\Middleware\ValidJson->handle()
#14 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(124): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#15 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(89): Illuminate\Routing\Middleware\ThrottleRequests->handleRequestUsingNamedLimiter()
#16 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\Routing\Middleware\ThrottleRequests->handle()
#17 /home/xxxxx/public_html/invoiceninja/app/Http/Middleware/QueryLogging.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#18 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\Http\Middleware\QueryLogging->handle()
#19 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(51): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#20 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#21 /home/xxxxx/public_html/invoiceninja/app/Http/Middleware/Locale.php(95): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#22 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\Http\Middleware\Locale->handle()
#23 /home/xxxxx/public_html/invoiceninja/app/Http/Middleware/TokenAuth.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\Http\Middleware\TokenAuth->handle()
#25 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\Pipeline\Pipeline->then()
#27 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\Routing\Router->runRouteWithinStack()
#28 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\Routing\Router->runRoute()
#29 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\Routing\Router->dispatchToRoute()
#30 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(201): Illuminate\Routing\Router->dispatch()
#31 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#32 /home/xxxxx/public_html/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/FlushEventsMiddleware.php(13): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\Laravel\Http\FlushEventsMiddleware->handle()
#34 /home/xxxxx/public_html/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\Laravel\Http\SetRequestIpMiddleware->handle()
#36 /home/xxxxx/public_html/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(31): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#37 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\Laravel\Http\SetRequestMiddleware->handle()
#38 /home/xxxxx/public_html/invoiceninja/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#39 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle()
#40 /home/xxxxx/public_html/invoiceninja/app/Http/Middleware/Cors.php(24): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\Http\Middleware\Cors->handle()
#42 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\Http\Middleware\TrustProxies->handle()
#44 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#46 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#47 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#48 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#49 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#50 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#51 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\Http\Middleware\ValidatePostSize->handle()
#52 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#53 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#54 /home/xxxxx/public_html/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(79): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#55 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\Laravel\Tracing\Middleware->handle()
#56 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#57 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\Pipeline\Pipeline->then()
#58 /home/xxxxx/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#59 /home/xxxxx/public_html/invoiceninja/public/index.php(56): Illuminate\Foundation\Http\Kernel->handle()
#60 {main}
"}

Hi,

Has anything else changed?

Hi,

No changes other than the usual updates to invoice ninja.

I’m not sure which releases however my last invoice run completed without issue on the 23rd of July.
Is there a log to see when I ran updates?

Server-wise, nothing has changed.

If it helps, PHP is 8.3, the original install last year was done with Softaculous.

The error ‘ERROR: Class “PDO” not found’ usually means the PHP extension is missing, this can happen if you move to a new server. Here’s what ChatGPT suggest to fix it:

The error Class "PDO" not found means that PHP’s PDO extension (used for database access) is not enabled or installed on your system. Here’s how you can fix it depending on your environment:


1. Check PHP Extensions

Run:

php -m | grep pdo

If nothing shows, PDO isn’t enabled.


2. Install PDO (Linux / macOS)

  • Debian/Ubuntu:

    sudo apt-get install php-pdo php-mysql
    sudo service apache2 restart   # or php-fpm restart
    
  • Alpine Linux (often in Docker images):

    docker-php-ext-install pdo pdo_mysql
    docker-php-ext-enable pdo pdo_mysql
    
  • CentOS / RHEL:

    sudo yum install php-pdo php-mysqlnd
    sudo systemctl restart httpd
    

3. Windows

  1. Open your php.ini.

  2. Find and uncomment:

    extension=pdo_mysql
    extension=pdo_sqlite
    

    (remove the ; at the start).

  3. Restart Apache/Nginx/PHP-FPM.


4. Verify

After restarting, run:

php -m | grep pdo

You should see pdo, pdo_mysql, etc.


:white_check_mark: Once PDO is installed and enabled, the Class "PDO" not found error will disappear.


I gave it try but found everything to be enabled.

As a last resort, I dropped PHP down to 8.2.

This resolved the issue.

Based on my time, I set my email send time to next closest timeslot
All Recurring invoices were processed immediately.

Something in one of the releases must not like PHP 8.3.

Thanks for your help.

Glad to hear it’s resolved, thanks for sharing the solution!

cc @david