Skip to content

Queueing email fails with PHP 7.3: Class setQueue does not exist #26819

Closed

Description

@ThomHurks
  • Laravel Version: 5.7.17
  • PHP Version: 7.3
  • Database Driver & Version: MySQL 5.7

Description:

When using Laravel with PHP 7.3, you get an error when queueing emails. I'm using a Redis queue for this. With PHP 7.2 everything works fine.

Steps To Reproduce:

I get an error on the line:

Mail::to($user->email)->send(new FooMail($user));

where Mail is Illuminate\Support\Facades\Mail

the class FooMail:

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class FooMail extends Mailable implements ShouldQueue
{
    use Queueable, SerializesModels;
    public function build() {
      return $this->view('emails.foo')->subject(...)->replyTo(...)->with([...]);
    }
}

My config:

MAIL_DRIVER=smtp
MAIL_HOST=email_host
MAIL_PORT=25
MAIL_USERNAME=username
MAIL_PASSWORD=secret
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME='Foo Bar'

CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

REDIS_HOST=redis-master
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_QUEUE=default

Furthermore I'm using phpredis as the client, not predis.

When I send an email I get the following error:

[2018-12-12 19:05:17] local.ERROR: Class setQueue does not exist {"exception":"[object] (ReflectionException(code: -1): Class setQueue does not exist at /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php:779)
[stacktrace]
#0 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(779): ReflectionClass->__construct('setQueue')
#1 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(658): Illuminate\\Container\\Container->build('setQueue')
#2 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(609): Illuminate\\Container\\Container->resolve('setQueue', Array)
#3 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(733): Illuminate\\Container\\Container->make('setQueue', Array)
#4 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(1222): Illuminate\\Foundation\\Application->make('setQueue')
#5 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php(52): Illuminate\\Container\\Container->offsetGet('setQueue')
#6 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(776): Illuminate\\Mail\\MailServiceProvider->Illuminate\\Mail\\{closure}(Object(Illuminate\\Foundation\\Application), Array)
#7 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(658): Illuminate\\Container\\Container->build(Object(Closure))
#8 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(609): Illuminate\\Container\\Container->resolve('mailer', Array)
#9 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(733): Illuminate\\Container\\Container->make('mailer', Array)
#10 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Container/Container.php(1222): Illuminate\\Foundation\\Application->make('mailer')
#11 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(161): Illuminate\\Container\\Container->offsetGet('mailer')
#12 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(130): Illuminate\\Support\\Facades\\Facade::resolveFacadeInstance('mailer')
#13 /Users/thom/Sites/fooProject/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(217): Illuminate\\Support\\Facades\\Facade::getFacadeRoot()
#14 /Users/thom/Sites/fooProject/app/Observers/FooObserver.php(189): Illuminate\\Support\\Facades\\Facade::__callStatic('to', Array)
#15 /Users/thom/Sites/fooProject/app/Observers/FooObserver.php(132): App\\Observers\\CommentObserver->sendFooEmails(Object(App\\Foo), Object(Illuminate\\Database\\Eloquent\\Collection))

When I use PHP 7.2 instead of PHP 7.3 then, without changing anything else, it works fine and it sends the email without errors.

Activity

  1. driesvints commented on Dec 13, 2018

    @driesvints
    Member

    Can you please check #26136 and try some of the things suggested there? Restarting Horizon, PHP-FPM, nginx, queues, etc.

    If nothing helps feel free to report back.

  2. ThomHurks commented on Dec 13, 2018

    @ThomHurks
    ContributorAuthor

    @driesvints We're running the application and the workers in Kubernetes with Docker containers, so restarting PHP/nginx is not applicable, as we built new images and started those. We're also not using Horizon. I literally only change the base image to PHP 7.2 and redeploy and it works again, so I think you can reopen this?

  3. driesvints commented on Dec 13, 2018

    @driesvints
    Member

    Okay. I'll try to look at this at a later time. I can't seem to figure it out at moment. It's pretty bizare what's going on here.

  4. chris-hud commented on Dec 13, 2018

    @chris-hud

    I'm getting the same issue.
    Expected behavior in vagrant box running PHP 7.2.5-1. Works in dev server running 7.2. I am migrating to production in a newly created forge server running 7.3 and it fails. To further confuse matters, It worked last night for a time period of 5 minutes when I invited initial users. I cannot get it to work today.

    See: https://stackoverflow.com/questions/53002885/laravel-5-7-class-setqueue-does-not-exist

  5. devcircus commented on Dec 13, 2018

    @devcircus
    Contributor

    There's several results from Google for this same issue where the user had issues with 7.3 only but was able to resolve. Seemed to be a config setting in those examples.

  6. chris-hud commented on Dec 13, 2018

    @chris-hud

    I have seen those google results where the issue was using QUEUE_DRIVER instead of QUEUE_CONNECTION in env and config. I have QUEUE_CONNECTION set correctly. laravel/framework: "5.7.*",

  7. chris-hud commented on Dec 13, 2018

    @chris-hud

    Error on:
    Mail::to($user->email)->send(new InviteUser($user));

    Mail Class:

    namespace App\Mail;
    
    use Illuminate\Bus\Queueable;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Contracts\Queue\ShouldQueue;
    
    class InviteUser extends Mailable
    {
        use Queueable, SerializesModels;
    
        /**
         * Create a new message instance.
         *
         * @return void
         */
        public function __construct($user)
        {
            $this->user = $user;
        }
    
        /**
         * Build the message.
         *
         * @return $this
         */
        public function build()
        {
          return $this->from('test@testwebsite.com')
              ->view('mail.invite')
              ->with(
                [
                      'name' => $this->user->fname . " " . $this->user->lname,
                      'invite_link' => "redacted" . $this->user->invite_token . "/invite",
                ]);
        }
    }
    

    .env

    BROADCAST_DRIVER=log
    CACHE_DRIVER=file
    QUEUE_CONNECTION=sync
    SESSION_DRIVER=file
    SESSION_LIFETIME=120
    
    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=null
    MAIL_PASSWORD=null
    MAIL_ENCRYPTION=null
    

    StackTrace

    [2018-12-13 21:09:23] development.ERROR: Class setQueue does not exist {"userId":1,"email":"test@test.com","exception":"[object] (ReflectionException(code: -1): Class setQueue does not exist at /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php:779)
    [stacktrace]
    #0 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(779): ReflectionClass->__construct('setQueue')
    #1 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(658): Illuminate\\Container\\Container->build('setQueue')
    #2 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(609): Illuminate\\Container\\Container->resolve('setQueue', Array)
    #3 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(735): Illuminate\\Container\\Container->make('setQueue', Array)
    #4 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(1222): Illuminate\\Foundation\\Application->make('setQueue')
    #5 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php(52): Illuminate\\Container\\Container->offsetGet('setQueue')
    #6 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(776): Illuminate\\Mail\\MailServiceProvider->Illuminate\\Mail\\{closure}(Object(Illuminate\\Foundation\\Application), Array)
    #7 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(658): Illuminate\\Container\\Container->build(Object(Closure))
    #8 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(609): Illuminate\\Container\\Container->resolve('mailer', Array)
    #9 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(735): Illuminate\\Container\\Container->make('mailer', Array)
    #10 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(1222): Illuminate\\Foundation\\Application->make('mailer')
    #11 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(161): Illuminate\\Container\\Container->offsetGet('mailer')
    #12 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(130): Illuminate\\Support\\Facades\\Facade::resolveFacadeInstance('mailer')
    #13 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(217): Illuminate\\Support\\Facades\\Facade::getFacadeRoot()
    #14 /home/forge/test.testwebsite.com/app/Http/Controllers/UserController.php(133): Illuminate\\Support\\Facades\\Facade::__callStatic('to', Array)
    #15 [internal function]: App\\Http\\Controllers\\UserController->invite(Object(Illuminate\\Http\\Request))
    #16 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
    #17 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('invite', Array)
    #18 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\UserController), 'invite')
    #19 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\\Routing\\Route->runController()
    #20 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(682): Illuminate\\Routing\\Route->run()
    #21 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #22 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #23 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'web')
    #24 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #25 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(58): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #26 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 60, '1')
    #27 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #28 /home/forge/test.testwebsite.com/app/Http/Middleware/CheckLockedUsers.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #29 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): App\\Http\\Middleware\\CheckLockedUsers->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #30 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #31 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #32 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #33 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #34 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(75): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #35 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #36 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #37 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #38 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #39 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #40 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #41 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #42 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #43 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #44 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #45 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #46 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #47 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #48 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #49 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #50 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(684): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #51 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(659): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
    #52 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
    #53 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(614): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
    #54 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
    #55 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
    #56 /home/forge/test.testwebsite.com/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #57 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #58 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #59 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #60 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #61 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #62 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #63 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #64 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #65 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #66 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #67 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #68 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #69 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
    #70 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
    #71 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
    #72 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
    #73 /home/forge/test.testwebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
    #74 /home/forge/test.testwebsite.com/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
    #75 {main}
    "}
    
  8. reinink commented on Dec 15, 2018

    @reinink
    Contributor

    I just experienced this as well, and I too use the PHP Redis extension, not predis, so I suspect that's where the issue is.

  9. hotmeteor commented on Dec 16, 2018

    @hotmeteor
    Contributor

    Same here. I think @reinink is onto it.

  10. Jam0r85 commented on Dec 16, 2018

    @Jam0r85

    Using predis here and same issue.

    Oddly enough it goes away when I use ShouldQueue.

    eg. the following works

    class NewRentalStatement extends Notification implements ShouldQueue

    however, the following does not.

    class NewRentalStatement extends Notification

    Proving troublesome as I cannot send password reset links in Nova or Wink.

  11. Jam0r85 commented on Dec 16, 2018

    @Jam0r85

    Quick and dirty, commenting out the following in the MailServiceProvider solves the issue.

    if ($app->bound('queue')) { $mailer->setQueue($app['queue']); }

  12. taylorotwell commented on Dec 17, 2018

    @taylorotwell
    Member

    This error seems really weird. It makes me wonder how could it even be a Laravel bug at all rather than something PHP related. There is no way the $mailer instance in MailServiceProvider can ever be a container instance, which is what the bug seems to imply.

    Also adding an interface to the class fixing it makes no sense either.

  13. 52 remaining items

  14. besthman commented on Jan 10, 2019

    @besthman

    Updating to 7.3.1 solved the issue for me.
    Don't forget to "brew services restart php@7.3 && valet restart" after "brew upgrade"

    How did you update to 7.3.1? Are you using Linux, Ubuntu?
    I am assuming that you're using mac..?

  15. victordevsquad commented on Jan 17, 2019

    @victordevsquad

    If using macOs, upgrade php to 7.3.1, by simply running brew upgrade php.

  16. vicgonvt commented on Jan 24, 2019

    @vicgonvt
    Contributor

    Confirmed, 7.3.1 fixes this issue.

  17. ThomHurks commented on Jan 25, 2019

    @ThomHurks
    ContributorAuthor

    Have the people who claim that "7.3.1 fixes it" actually tested with the older version of Laravel? The last few releases include a workaround for this bug, so naturally that will work regardless of the PHP version. The reason I'm asking is because PHP itself claims this bug will only be resolved in version 7.3.2

  18. GrahamCampbell commented on Jan 25, 2019

    @GrahamCampbell
    Collaborator

    @ThomHurks Please see the pinned issue: #27052.

  19. vicgonvt commented on Jan 25, 2019

    @vicgonvt
    Contributor

    @ThomHurks I have a production environment running PHP 7.2.10 and the same code base in local development, and yes, I can confirm that 7.3.0 broke the same codebase locally. Upon upgrading my local to 7.3.1, my test suite is back to green.

  20. ThomHurks commented on Jan 25, 2019

    @ThomHurks
    ContributorAuthor

    @GrahamCampbell Hadn't seen that one yet. Thanks!
    @vicgonvt What version of Laravel are you running?

  21. vicgonvt commented on Jan 25, 2019

    @vicgonvt
    Contributor

    @ThomHurks Laravel Framework 5.7.22

  22. ThomHurks commented on Jan 25, 2019

    @ThomHurks
    ContributorAuthor

    @vicgonvt That's what I thought, and what I pointed out in my previous comment; that version of Laravel has a workaround for this bug, so you wouldn't be affected by it even if PHP 7.3.1 still had this bug. It should be officially fixed in PHP 7.3.2, according to the bug report Taylor filed on php.net. Some (other) OPCache bugs were fixed in 7.3.1 though.

  23. vicgonvt commented on Jan 25, 2019

    @vicgonvt
    Contributor

    @ThomHurks AHA!, didn't get that the first round of messages. So I guess the workaround is only valid for 7.3.1, because I was getting errors running 7.3.0.

  24. ThomHurks commented on Jan 25, 2019

    @ThomHurks
    ContributorAuthor

    @vicgonvt The workaround should be valid for 7.3.0 too, but be aware that 7.3.0 had a lot more issues than just this bug. I've decided for my own projects to wait a few patch releases before I attempt another go at PHP 7.3 for this reason.

  25. vicgonvt commented on Jan 25, 2019

    @vicgonvt
    Contributor

    @ThomHurks I was unable to get passed that setQueue error just yesterday on 7.3.0 and still on 5.7.22. There is definitely something going on there with that. But you are right, we are keeping our production environment locked to 7.2.*. I mostly upgraded my local environment to play with the new PHP features, not really intending to deploy that change to production.

  26. ThomHurks commented on Jan 25, 2019

    @ThomHurks
    ContributorAuthor

    @vicgonvt Ouch, that sounds like the workaround that was added to Laravel doesn't actually work around the problem then. I'll see if I can do some testing tomorrow with my own setup.

  27. driesvints commented on Jan 28, 2019

    @driesvints
    Member

    Please wait with upgrading if you need this until PHP 7.3.2 has been released.

  28. locked and limited conversation to collaborators on Jan 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions