Skip to content

NovaExceptionHandler appears to be handling non-Nova exceptions #3867

@dwightwatson

Description

@dwightwatson
  • Laravel Version: 9.7.0
  • Nova Version: 4.0.5
  • PHP Version: 8.1.4

Description:

I'm opening this issue, a continuation of #3851. In my application I had upgraded from Nova 3 to Nova 4.

I've copied the stacktrace from that issue as an example:

View [app] not found. {"userId":7,"exception":"[object] (InvalidArgumentException(code: 0): View [app] not found. at /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:137)
[stacktrace]
#0 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php(79): Illuminate\\View\\FileViewFinder->findInPaths('app', Array)
#1 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/View/Factory.php(138): Illuminate\\View\\FileViewFinder->find('app')
#2 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php(85): Illuminate\\View\\Factory->make('app', Array)
#3 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\\Routing\\ResponseFactory->view('app', Array)
#4 /Users/cajunmba/LaravelProjects/signs/vendor/inertiajs/inertia-laravel/src/Response.php(113): Illuminate\\Support\\Facades\\Facade::__callStatic('view', Array)
#5 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/nova/src/Exceptions/NovaExceptionHandler.php(88): Inertia\\Response->toResponse(Object(Illuminate\\Http\\Request))
#6 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/nova/src/Exceptions/NovaExceptionHandler.php(68): Laravel\\Nova\\Exceptions\\NovaExceptionHandler->renderInertiaException(Object(Illuminate\\Http\\Request), Object(InvalidArgumentException))
#7 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(51): Laravel\\Nova\\Exceptions\\NovaExceptionHandler->render(Object(Illuminate\\Http\\Request), Object(InvalidArgumentException))
#8 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(172): Illuminate\\Routing\\Pipeline->handleException(Object(Illuminate\\Http\\Request), Object(InvalidArgumentException))
#9 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#10 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#11 /Users/cajunmba/LaravelProjects/signs/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#12 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#13 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#14 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#15 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#16 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#17 /Users/cajunmba/LaravelProjects/signs/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#18 /Users/cajunmba/LaravelProjects/signs/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#19 /Users/cajunmba/.composer/vendor/laravel/valet/server.php(219): require('/Users/cajunmba...')
#20 {main}
"}

After deploying to production I started getting the error View [app] not found. It appears as though this is caused by the NovaExceptionHandler trying to handle an exception with an Inertia response, and attempting to load an app view not in the main app.

I noticed this affected two URL patterns before I rolled back to Nova 3:

  • /forums/* are not current URLs - they are an older pattern still indexed by search engines that should 404.
  • /livewire/* are current Livewire URLs, but it looks like the actual exception is being gobbled up so I can't see what the issue is.

image

It's almost like Nova is taking all routes I haven't defined (like these non-existing /forums/* and the Livewire defined /livewire/*) and attempting to serve those as if they were Nova requests?

Metadata

Metadata

Assignees

Labels

bugVerified bug by the Nova team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions