bugsnag / bugsnag-laravel

BugSnag notifier for the Laravel PHP framework. Monitor and report Laravel errors.
https://docs.bugsnag.com/platforms/php/laravel/
MIT License
875 stars 129 forks source link

Unhandled exceptions not reported to Bugsnag #379

Closed elynnaie closed 4 years ago

elynnaie commented 4 years ago

Expected behavior

Exceptions are sent to Bugsnag.

Observed behavior

Laravel cannot find the Bugsnag driver. This message is thrown in the log:

[2020-01-15 17:01:57] laravel.EMERGENCY: [General] Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Driver [bugsnag] is not supported. at /var/www/api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:181)
[stacktrace]
#0 /var/www/api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(102): Illuminate\Log\LogManager->resolve('bugsnag')
#1 /var/www/api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(90): Illuminate\Log\LogManager->get('bugsnag')
#2 /var/www/api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(500): Illuminate\Log\LogManager->driver()
#3 /var/www/api/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(118): Illuminate\Log\LogManager->error('Here comes an e...', Array)
#4 /var/www/api/app/Exceptions/Handler.php(40): Illuminate\Foundation\Exceptions\Handler->report(Object(Exception))
#5 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(81): App\Exceptions\Handler->report(Object(Exception))
#6 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Routing\Pipeline->handleException(Object(Illuminate\Http\Request), Object(Exception))
#7 /var/www/api/app/Http/Middleware/Authenticate.php(109): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#8 /var/www/api/app/Http/Middleware/Authenticate.php(86): App\Http\Middleware\Authenticate->handleAuthToken('alVjEQa4B8YPwLJ...', Object(Illuminate\Http\Request), Object(Closure))
#9 /var/www/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): App\Http\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#10 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#11 /var/www/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#12 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(682): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#13 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(657): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#14 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(623): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#15 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(612): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#16 /var/www/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#17 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#18 /var/www/api/app/Http/Middleware/DetectLocale.php(36): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /var/www/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): App\Http\Middleware\DetectLocale->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 /var/www/api/app/Http/Middleware/CheckApiVersion.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#22 /var/www/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): App\Http\Middleware\CheckApiVersion->handle(Object(Illuminate\Http\Request), Object(Closure))
#23 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#24 /var/www/api/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#25 /var/www/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 /var/www/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#28 /var/www/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#29 /var/www/api/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#30 /var/www/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#31 /var/www/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#32 /var/www/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#33 /var/www/api/public/index.php(63): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#34 {main}"}

Steps to reproduce

Unknown. I simply put throw new \Exception('asdf'); at the top of one of my controller methods.

Version

bugsnag/bugsnag-laravel: v2.17.1 bugsnag/bugsnag: v3.19.0 laravel/framework: v5.8.35

Additional information

Same issue as #333, but none of the suggested responses helped. I have done/checked the following:

  1. php artisan clear-compiled
  2. php artisan cache:clear
  3. php artisan config:clear
  4. php artisan optimize:clear
  5. php artisan route:clear
  6. php artisan view:clear
  7. .env contains a valid Bugsnag API key (verified because manually reporting an exception does work), as well as LOG_CHANNEL=bugsnag, BUGSNAG_NOTIFY_RELEASE_STAGES=local, APP_ENV=local, and APP_DEBUG=true.
  8. config/app.php has Bugsnag\BugsnagLaravel\BugsnagServiceProvider::class, registered before App\Providers\AppServiceProvider::class
  9. config/logging.php has
    
    return [
    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single', 'stdout', 'bugsnag'],
        ],
        ...
        'bugsnag' => [
            'driver' => 'bugsnag',
        ],
    ],
    ];
GrahamCampbell commented 4 years ago

Thanks for getting in touch. Could you provide your app's composer.lock file please?

Also, do you have any globally installed packages? (You can find out with composer73 global show (if you get an error saying there's no composer.lock file in ~/.composer, then it means you have no globally installed packages))

elynnaie commented 4 years ago

Lock file here: https://pastebin.com/raw/qTc6MTAD

I don't have any globally installed packages.

mattdyoung commented 4 years ago

Hi @elynnaie

I've so far been unable to reproduce the issue you're seeing.

Taking our Laravel example app: https://github.com/bugsnag/bugsnag-laravel/tree/master/example/laravel57 updating the Laravel and Bugsnag dependencies to the versions you're using and mirroring your channel logging configuration, the example works fine when triggering an unhandled exception.

Are you able to share a standalone reproduction project that demonstrates the issue?

elynnaie commented 4 years ago

I am unable to do so. I will close the issue and reopen if I find out anything more.