Skip to content

Mail queue is not instantiable #695

@webbati

Description

@webbati

Winter CMS Build

1.2

PHP Version

8.1

Database engine

MySQL/MariaDB

Plugins installed

No response

Issue description

Unable to run the mail queue

Full stack trace:

Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Mail\Factory] is not instantiable. in /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Container.php:1091
Stack trace:
#0 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Container.php(884): Illuminate\Container\Container->notInstantiable()
#1 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Container.php(756): Illuminate\Container\Container->build()
#2 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(860): Illuminate\Container\Container->resolve()
#3 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Container.php(692): Illuminate\Foundation\Application->resolve()
#4 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(845): Illuminate\Container\Container->make()
#5 /var/www/html/my.domain.tld/vendor/winter/storm/src/Foundation/Application.php(304): Illuminate\Foundation\Application->make()
#6 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(181): Winter\Storm\Foundation\Application->make()
#7 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(124): Illuminate\Container\BoundMethod::addDependencyForCallParameter()
#8 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Container\BoundMethod::getMethodDependencies()
#9 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#10 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#11 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod()
#12 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\Container\BoundMethod::call()
#13 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call()
#14 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}()
#15 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#16 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then()
#17 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(124): Illuminate\Bus\Dispatcher->dispatchNow()
#18 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}()
#19 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#20 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(126): Illuminate\Pipeline\Pipeline->then()
#21 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(70): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware()
#22 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call()
#23 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(425): Illuminate\Queue\Jobs\Job->fire()
#24 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(375): Illuminate\Queue\Worker->process()
#25 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(173): Illuminate\Queue\Worker->runJob()
#26 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(150): Illuminate\Queue\Worker->daemon()
#27 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(134): Illuminate\Queue\Console\WorkCommand->runWorker()
#28 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Queue\Console\WorkCommand->handle()
#29 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#30 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#31 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod()
#32 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\Container\BoundMethod::call()
#33 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Console/Command.php(144): Illuminate\Container\Container->call()
#34 /var/www/html/my.domain.tld/vendor/symfony/console/Command/Command.php(308): Illuminate\Console\Command->execute()
#35 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Console/Command.php(126): Symfony\Component\Console\Command\Command->run()
#36 /var/www/html/my.domain.tld/vendor/symfony/console/Application.php(1002): Illuminate\Console\Command->run()
#37 /var/www/html/my.domain.tld/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand()
#38 /var/www/html/my.domain.tld/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun()
#39 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Console/Application.php(102): Symfony\Component\Console\Application->run()
#40 /var/www/html/my.domain.tld/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(129): Illuminate\Console\Application->run()
#41 /var/www/html/my.domain.tld/artisan(35): Illuminate\Foundation\Console\Kernel->handle()
#42 {main}

Steps to replicate

Simple mail queue like

Mail::queue('mail::template', [], function($message) {
    $message->to('bob@sponge.com', 'Bob Sponge');
    $message->subject('Test queue');
});

Workaround

Reading here laravel/lumen-framework#1057

I added in the ROOT/bootstrap/app.php file this two alias and now works

$app->alias(
    'mail.manager', Illuminate\Mail\MailManager::class
);

$app->alias(
    'mail.manager', Illuminate\Contracts\Mail\Factory::class
);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions