cms
cms copied to clipboard
Error logs: Unable to set visibility for file
Bug description
I'm noticing random but frequent errors appearing in my server logs. They seem to happen randomly. I don't think they are affecting the visitor experience.
Example 1 - From asset field
Unable to set visibility for file containers/images/4.jpg/7a74d6248bee8f56088387bf4e26032e.webp
$image = Statamic::tag('glide:generate')->src($image)->params(['width' => 300, 'height' => 300, 'fm' => 'webp', 'fit' => 'crop_focal'])[0];
Example 2 - From local path
Unable to set visibility for file paths/images/table-no-space-middle1.jpg/989e5c2d05020abc66c4d34890951412.jpg
@foreach (Statamic::tag('glide:generate')->src('/images/table-no-space-middle1.jpg')->width(1200)->height(627)->fit('crop_focal')->fm('jpg') as $image)
How to reproduce
Not sure. Happens randomly.
- I am using a DigitalOcean droplet and a DigitalOcean space.
- The errors seem to happen in the droplet's filesystem and not on the space.
- The errors occur in views where I am using the
glide:generatetag. I am also using Spatie's responsive images but no errors seem to be emanating from there. - Save Cached Images = false
- Clearing the glide cache reduces the errors temporarily. Seems to be a problem with older caches.
Logs
[2023-01-01 12:03:09] production.ERROR: Unable to set visibility for file paths/images/table-no-space-middle1.jpg/989e5c2d05020abc66c4d34890951412.jpg. {"view":{"view":"/home/forge/www.website.com/resources/views/vendor/statamic-seo/seo.blade.php","data":[]},"exception":"[object] (Spatie\\LaravelIgnition\\Exceptions\\ViewException(code: 0): Unable to set visibility for file paths/images/table-no-space-middle1.jpg/989e5c2d05020abc66c4d34890951412.jpg. at /home/forge/www.website.com/vendor/league/flysystem/src/UnableToSetVisibility.php:33)
[stacktrace]
#0 /home/forge/www.website.com/vendor/league/flysystem/src/Local/LocalFilesystemAdapter.php(448): League\\Flysystem\\UnableToSetVisibility::atLocation()
#1 /home/forge/www.website.com/vendor/league/flysystem/src/Local/LocalFilesystemAdapter.php(346): League\\Flysystem\\Local\\LocalFilesystemAdapter->setPermissions()
#2 /home/forge/www.website.com/vendor/league/flysystem/src/Local/LocalFilesystemAdapter.php(124): League\\Flysystem\\Local\\LocalFilesystemAdapter->setVisibility()
#3 /home/forge/www.website.com/vendor/league/flysystem/src/Local/LocalFilesystemAdapter.php(103): League\\Flysystem\\Local\\LocalFilesystemAdapter->writeToFile()
#4 /home/forge/www.website.com/vendor/league/flysystem/src/Filesystem.php(69): League\\Flysystem\\Local\\LocalFilesystemAdapter->writeStream()
#5 /home/forge/www.website.com/vendor/league/flysystem/src/MountManager.php(369): League\\Flysystem\\Filesystem->writeStream()
#6 /home/forge/www.website.com/vendor/league/flysystem/src/MountManager.php(245): League\\Flysystem\\MountManager->copyAcrossFilesystem()
#7 /home/forge/www.website.com/vendor/statamic/cms/src/Imaging/Attributes.php(20): League\\Flysystem\\MountManager->copy()
#8 /home/forge/www.website.com/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(338): Statamic\\Imaging\\Attributes->from()
#9 /home/forge/www.website.com/vendor/statamic/cms/src/Tags/Glide.php(138): Illuminate\\Support\\Facades\\Facade::__callStatic()
#10 [internal function]: Statamic\\Tags\\Glide->Statamic\\Tags\\{closure}()
#11 /home/forge/www.website.com/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(560): array_map()
#12 /home/forge/www.website.com/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(739): Illuminate\\Support\\Arr::map()
#13 /home/forge/www.website.com/vendor/statamic/cms/src/Tags/Glide.php(147): Illuminate\\Support\\Collection->map()
#14 /home/forge/www.website.com/vendor/statamic/cms/src/Tags/FluentTag.php(115): Statamic\\Tags\\Glide->generate()
#15 /home/forge/www.website.com/vendor/statamic/cms/src/Tags/FluentTag.php(136): Statamic\\Tags\\FluentTag->fetch()
#16 /home/forge/www.website.com/resources/views/vendor/statamic-seo/seo.blade.php(17): Statamic\\Tags\\FluentTag->getIterator()
#17 /home/forge/www.website.com/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(109): require('...')
#18 /home/forge/www.website.com/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(110): Illuminate\\Filesystem\\Filesystem::Illuminate\\Filesystem\\{closure}()
... MORE
Environment
Environment
Laravel Version: 9.44.0
PHP Version: 8.1.7
Composer Version: 2.5.1
Environment: production
Debug Mode: OFF
Maintenance Mode: OFF
Cache
Config: NOT CACHED
Events: NOT CACHED
Routes: NOT CACHED
Views: CACHED
Drivers
Broadcasting: log
Cache: statamic
Database: mysql
Logs: stack / single, slack
Mail: smtp
Queue: sync
Session: file
Statamic
Addons: 6
Antlers: regex
Stache Watcher: Disabled
Static Caching: half
Version: 3.3.61 PRO
Statamic Addons
aerni/livewire-forms: 4.0.0
jonassiewertsen/statamic-livewire: 2.9.0
pecotamic/sitemap: 1.4.0
spatie/statamic-responsive-images: 2.14.4
stuartcusackie/statamic-cache-requester: 1.0.2
stuartcusackie/statamic-seo: 0.3.2
Installation
Fresh statamic/statamic site via CLI
Antlers Parser
None
Additional details: file references
I logged into the server to investigate the troublesome file: /storage/statamic/glide/containers/images/4.jpg/7a74d6248bee8f56088387bf4e26032e.webp
I ran a search for references to this file in /storage/framework/cache/glide:
grep -ri "7a74d6248bee8f56088387bf4e26032e" /home/forge/www.mywebsite.com/storage/framework/cache/glide
This found two references in folders /glide/7f/06/ and /glide/65/ff/. Is this normal? Should there be two references to the same file?
@stuartcusackie is this site a multi-site?
@edalzell Yes indeed. This is happening on a multi-site. It doesn't seem to happen on single sites - still checking my error logs...
I'm using DO Spaces to store my Glide manipulations and I see this error when using SSG and too many workers. If I use a single worker, my site builds fine, but the more workers I add the more likely I am to encounter a "Unable to set visibility for file" error. The images that tend to cause this error are ones commonly found on most pages in my website. My hunch is that there's some kind of read/write conflict happening when multiple workers try to simultaneously manipulate the same image. I dunno if this same cause could relate to multi-sites in some way?
We get this same error too - we're not using multi-site.
We're getting this in multisites too
Just happened randomly on a "normal" singlesite
FYI folks you can stop this from appearing in your logs by add this to your app/Exceptions/Handler.php:

In my case it was a visible error code, not just in the logs...
In my case it was a visible error code, not just in the logs...
This happened for me and my team as well, but only if the environment is NOT in production. When the environment is in production, everything is logged but the visitors don't get the error page.
It feels a bit like the error is thrown somewhere in the internals but doesn't actually stop execution.
Just to update on this. One of my traffic-heavy sites is experiencing CPU overloads and server crashes, and those seem to be happening at the exact same time that these errors appear in the logs.
It might be possible that this error causes a spike in CPU usage, or maybe this error is the result of an overstressed CPU. I wonder if anyone else is seeing this kind of behaviour...
I have added some additional details above after performing some investigation.
I was able to come up with a couple of workarounds for this issue because of the way we use our templates.
Workaround 1: validation rules on asset fields.
Use the dimensions validation rule for assets field and specifiy the exact dimensions that you require for the images. This works well for images that don't need resizing when the browser changes size, such as social share images.
This workaround means you can use $asset->url() or $asset->absoluteUrl() directly instead of depending on Glide.
Workaround 2: generate srcsets on (image) asset upload.
You need to build a couple of things to get this approach to work:
- You need to create a custom helper class that generates the srcset for you.
- You need an event listener that listens for the AssetUploaded and AssetSaved events, generates a
srcsetfor your image and updates the asset. - You need a command that iterates over your existing assets and adds the
srcsetattribute to each asset that needs it.
Then all you have to do is replace Glide with attribute calls on the asset. I'm using $asset->srcset myself.
I can probably create some gists if people need it.
☝️ I used both workarounds to remove Glide from our frontend completely; the only place we're using Glide is when an asset is uploaded or saved.
Experiencing this too with the eloquent driver and Statamic::tag('glide:generate') in Blade. This does not fail silently for me - throws a 500 in both Production and Local environments.
@foreach(Statamic::tag('glide:generate')->src($post->assetObject)->fit('crop_focal') as $image)
<img src="{{ $image['url'] }}" alt="{{ $image['alt'] ?? '' }}" class="object-cover h-full w-full rounded ">
@endforeach
Laravel Version: 10.13.1 PHP Version: 8.2.6 Statamic Version: 3.5.0 PRO Environment: local
Same here. It's especially noticeable when running the static:warm command in production. That produces random errors 500 with UnableToDeleteFile and UnableToSetVisibility showing up in monitoring.
PHP 8.1 Statamic 4.11.0 Laravel 10.15.0 Multi-site Assets cache = false
Also having this, on a single (non-multi) site, can't narrow it down to a schedule, seems to happen sporadically a few times a week;
[2023-08-24 20:56:22] production.ERROR: Unable to set visibility for file containers/assets/social-share-images/Social sharing - 1200 x 628.jpg/2e6867acc9a37569fcab8b1d0f53cd14.jpg. {"exception":"[object] (League\\Flysystem\\UnableToSetVisibility(code: 0): Unable to set visibility for file containers/assets/social-share-images/Social sharing - 1200 x 628.jpg/2e6867acc9a37569fcab8b1d0f53cd14.jpg. at /home/ploi/site.com.au/vendor/league/flysystem/src/UnableToSetVisibility.php:33)
[stacktrace]
#0 /home/ploi/site.com.au/vendor/league/flysystem-local/LocalFilesystemAdapter.php(460): League\\Flysystem\\UnableToSetVisibility::atLocation()
#1 /home/ploi/site.com.au/vendor/league/flysystem-local/LocalFilesystemAdapter.php(358): League\\Flysystem\\Local\\LocalFilesystemAdapter->setPermissions()
#2 /home/ploi/site.com.au/vendor/league/flysystem-local/LocalFilesystemAdapter.php(128): League\\Flysystem\\Local\\LocalFilesystemAdapter->setVisibility()
#3 /home/ploi/site.com.au/vendor/league/flysystem-local/LocalFilesystemAdapter.php(107): League\\Flysystem\\Local\\LocalFilesystemAdapter->writeToFile()
This is happening to me (500 using an external storage vendor like in #7193) and can't figure out how to fix it. It only started after doing a glide:clear. I've regenerated assets, cleared all cache from everything. Anyone know how to get it working again
This is also happening randomly using a S3 bucket, multi-site, eloquent driver, static caching.
I don't understand where this bug comes from.
Unable to set visibility for file filename-1711019147.jpg.
League\\Flysystem\\UnableToSetVisibility(code: 0): Unable to set visibility for file filename-1711019147.jpg. at vendor/league/flysystem/src/UnableToSetVisibility.php:33
#0 vendor/league/flysystem-local/LocalFilesystemAdapter.php(480): League\\Flysystem\\UnableToSetVisibility::atLocation()
#1 vendor/league/flysystem-local/LocalFilesystemAdapter.php(378): League\\Flysystem\\Local\\LocalFilesystemAdapter->setPermissions()
#2 vendor/league/flysystem-local/LocalFilesystemAdapter.php(133): League\\Flysystem\\Local\\LocalFilesystemAdapter->setVisibility()
#3 vendor/league/flysystem-local/LocalFilesystemAdapter.php(112): League\\Flysystem\\Local\\LocalFilesystemAdapter->writeToFile()
#4 vendor/league/flysystem/src/Filesystem.php(67): League\\Flysystem\\Local\\LocalFilesystemAdapter->writeStream()
#5 vendor/league/flysystem/src/MountManager.php(404): League\\Flysystem\\Filesystem->writeStream()
#6 vendor/league/flysystem/src/MountManager.php(274): League\\Flysystem\\MountManager->copyAcrossFilesystem()
#7 vendor/statamic/cms/src/Imaging/Attributes.php(26): League\\Flysystem\\MountManager->copy()
#8 vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(355): Statamic\\Imaging\\Attributes->from()
#9 vendor/statamic/cms/src/Assets/Attributes.php(69): Illuminate\\Support\\Facades\\Facade::__callStatic()
#10 vendor/statamic/cms/src/Assets/Attributes.php(34): Statamic\\Assets\\Attributes->getImageAttributes()
#11 vendor/statamic/cms/src/Assets/Asset.php(281): Statamic\\Assets\\Attributes->get()
#12 vendor/statamic/eloquent-driver/src/Assets/Asset.php(118): Statamic\\Assets\\Asset->generateMeta()
#13 vendor/statamic/eloquent-driver/src/Assets/Asset.php(107): Statamic\\Eloquent\\Assets\\Asset->generateMeta()
#14 vendor/statamic/eloquent-driver/src/Assets/Asset.php(45): Statamic\\Eloquent\\Assets\\Asset->metaValue()
#15 vendor/statamic/cms/src/Assets/Asset.php(800): Statamic\\Eloquent\\Assets\\Asset->meta()
#16 vendor/statamic/cms/src/Assets/Asset.php(810): Statamic\\Assets\\Asset->dimensions()
#17 vendor/statamic/cms/src/Data/AbstractAugmented.php(141): Statamic\\Assets\\Asset->width()
#18 vendor/statamic/cms/src/Fields/Value.php(56): Statamic\\Data\\AbstractAugmented->Statamic\\Data\\{closure}()
#19 vendor/statamic/cms/src/Data/AbstractAugmented.php(78): Statamic\\Fields\\Value->resolve()
#20 vendor/statamic/cms/src/Data/AbstractAugmented.php(52): Statamic\\Data\\AbstractAugmented->get()
#21 vendor/statamic/cms/src/Fields/Value.php(56): Statamic\\Data\\AbstractAugmented->Statamic\\Data\\{closure}()
#22 vendor/statamic/cms/src/Fields/Value.php(71): Statamic\\Fields\\Value->resolve()
#23 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(602): Statamic\\Fields\\Value->value()
#24 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(1474): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->shouldProcessAsTag()
#25 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(2290): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#26 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(750): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#27 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(381): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->render()
#28 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(773): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->renderText()
#29 vendor/statamic/cms/src/View/Antlers/Engine.php(93): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->parseView()
#30 vendor/laravel/framework/src/Illuminate/View/View.php(207): Statamic\\View\\Antlers\\Engine->get()
#31 vendor/laravel/framework/src/Illuminate/View/View.php(190): Illuminate\\View\\View->getContents()
#32 vendor/laravel/framework/src/Illuminate/View/View.php(159): Illuminate\\View\\View->renderContents()
#33 vendor/statamic/cms/src/Tags/Partial.php(29): Illuminate\\View\\View->render()
#34 vendor/statamic/cms/src/Tags/Partial.php(13): Statamic\\Tags\\Partial->render()
#35 vendor/statamic/cms/src/Tags/Tags.php(152): Statamic\\Tags\\Partial->wildcard()
#36 [internal function]: Statamic\\Tags\\Tags->__call()
#37 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(1608): call_user_func()
#38 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(2335): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#39 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(750): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#40 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(381): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->render()
#41 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(715): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->renderText()
#42 vendor/statamic/cms/src/View/Antlers/Antlers.php(31): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->parse()
#43 vendor/statamic/cms/src/Tags/Tags.php(173): Statamic\\View\\Antlers\\Antlers->parse()
#44 vendor/statamic/cms/src/View/Antlers/Antlers.php(22): Statamic\\Tags\\Tags->Statamic\\Tags\\{closure}()
#45 vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(355): Statamic\\View\\Antlers\\Antlers->usingParser()
#46 vendor/statamic/cms/src/Tags/Tags.php(171): Illuminate\\Support\\Facades\\Facade::__callStatic()
#47 vendor/statamic/cms/src/Tags/Partial.php(24): Statamic\\Tags\\Tags->parse()
#48 vendor/statamic/cms/src/Tags/Partial.php(13): Statamic\\Tags\\Partial->render()
#49 vendor/statamic/cms/src/Tags/Tags.php(152): Statamic\\Tags\\Partial->wildcard()
#50 [internal function]: Statamic\\Tags\\Tags->__call()
#51 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(1608): call_user_func()
#52 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(750): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#53 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(381): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->render()
#54 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(773): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->renderText()
#55 vendor/statamic/cms/src/View/Antlers/Engine.php(93): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->parseView()
#56 vendor/laravel/framework/src/Illuminate/View/View.php(207): Statamic\\View\\Antlers\\Engine->get()
#57 vendor/laravel/framework/src/Illuminate/View/View.php(190): Illuminate\\View\\View->getContents()
#58 vendor/laravel/framework/src/Illuminate/View/View.php(159): Illuminate\\View\\View->renderContents()
#59 vendor/statamic/cms/src/Tags/Partial.php(29): Illuminate\\View\\View->render()
#60 vendor/statamic/cms/src/Tags/Partial.php(13): Statamic\\Tags\\Partial->render()
#61 vendor/statamic/cms/src/Tags/Tags.php(152): Statamic\\Tags\\Partial->wildcard()
#62 [internal function]: Statamic\\Tags\\Tags->__call()
#63 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(1608): call_user_func()
#64 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(2335): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#65 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(750): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#66 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(381): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->render()
#67 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(773): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->renderText()
#68 vendor/statamic/cms/src/View/Antlers/Engine.php(93): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->parseView()
#69 vendor/laravel/framework/src/Illuminate/View/View.php(207): Statamic\\View\\Antlers\\Engine->get()
#70 vendor/laravel/framework/src/Illuminate/View/View.php(190): Illuminate\\View\\View->getContents()
#71 vendor/laravel/framework/src/Illuminate/View/View.php(159): Illuminate\\View\\View->renderContents()
#72 vendor/statamic/cms/src/Tags/Partial.php(29): Illuminate\\View\\View->render()
#73 vendor/statamic/cms/src/Tags/Partial.php(13): Statamic\\Tags\\Partial->render()
#74 vendor/statamic/cms/src/Tags/Tags.php(152): Statamic\\Tags\\Partial->wildcard()
#75 [internal function]: Statamic\\Tags\\Tags->__call()
#76 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(1608): call_user_func()
#77 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(2335): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#78 vendor/statamic/cms/src/View/Antlers/Language/Runtime/NodeProcessor.php(750): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->reduce()
#79 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(381): Statamic\\View\\Antlers\\Language\\Runtime\\NodeProcessor->render()
#80 vendor/statamic/cms/src/View/Antlers/Language/Runtime/RuntimeParser.php(773): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->renderText()
#81 vendor/statamic/cms/src/View/Antlers/Engine.php(93): Statamic\\View\\Antlers\\Language\\Runtime\\RuntimeParser->parseView()
#82 vendor/laravel/framework/src/Illuminate/View/View.php(207): Statamic\\View\\Antlers\\Engine->get()
#83 vendor/laravel/framework/src/Illuminate/View/View.php(190): Illuminate\\View\\View->getContents()
#84 vendor/laravel/framework/src/Illuminate/View/View.php(159): Illuminate\\View\\View->renderContents()
#85 vendor/statamic/cms/src/View/View.php(104): Illuminate\\View\\View->render()
#86 vendor/statamic/cms/src/Http/Responses/DataResponse.php(146): Statamic\\View\\View->render()
#87 vendor/statamic/cms/src/Http/Responses/DataResponse.php(42): Statamic\\Http\\Responses\\DataResponse->contents()
#88 vendor/statamic/cms/src/Structures/Page.php(420): Statamic\\Http\\Responses\\DataResponse->toResponse()
#89 vendor/laravel/framework/src/Illuminate/Routing/Router.php(900): Statamic\\Structures\\Page->toResponse()
#90 vendor/laravel/framework/src/Illuminate/Routing/Router.php(885): Illuminate\\Routing\\Router::toResponse()
#91 vendor/laravel/framework/src/Illuminate/Routing/Router.php(805): Illuminate\\Routing\\Router->prepareResponse()
#92 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
[Middlewares...]
#154 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#155 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#156 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#157 public/index.php(51): Illuminate\\Foundation\\Http\\Kernel->handle()
#158 {main}