-
-
Notifications
You must be signed in to change notification settings - Fork 606
Open
Description
Bug description
I've started getting this error.
Serialization of 'ReflectionMethod' is not allowed
\mywebsite.com\vendor\laravel\framework\src\Illuminate\Cache\FileStore.php: 77
It seems that Blade components with nested @include / @nocache calls aren't fully compatible, but you can workaround it by trying various structures.
How to reproduce
I have stripped down my code to its most basic and I can cause this error by using a layout component that contains the following elements in this order:
settings.blade.php
<x-layout>
<p>Test</p>
</x-layout>
components/layout.blade.php
<!DOCTYPE html>
<html>
<body>
<x-container>
{{ $slot }}
</x-container>
@include('partials.mobile-menu')
</body>
</html>
partials/mobile-menu.blade.php
<div>
@nocache('partials.mobile-menu-nav')
</div>
partials/mobile-menu-nav.php
<div>
<p>test</p>
</div>
These four simple files are enough to cause the error but I can avoid the error in a few ways:
- Remove the
<x-container> - Move the @include to before the container.
- Remove the @nocache directive
- Swap the @include / @nocache directives thus applying @nocache to the entire mobile-menu partial. I am currently using this as a workaround.
Logs
[2022-10-06 13:53:52] local.ERROR: Serialization of 'ReflectionMethod' is not allowed {"userId":4,"exception":"[object] (Exception(code: 0): Serialization of 'ReflectionMethod' is not allowed at mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Cache\\FileStore.php:77)
[stacktrace]
#0 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Cache\\FileStore.php(77): serialize(Array)
#1 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Cache\\FileStore.php(200): Illuminate\\Cache\\FileStore->put('nocache::sessio...', Array, 0)
#2 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Cache\\Repository.php(363): Illuminate\\Cache\\FileStore->forever('nocache::sessio...', Array)
#3 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Cache\\CacheManager.php(418): Illuminate\\Cache\\Repository->forever('nocache::sessio...', Array)
#4 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Facades\\Facade.php(338): Illuminate\\Cache\\CacheManager->__call('forever', Array)
#5 mywebsite.ie\\vendor\\statamic\\cms\\src\\StaticCaching\\NoCache\\Session.php(93): Illuminate\\Support\\Facades\\Facade::__callStatic('forever', Array)
#6 mywebsite.ie\\vendor\\statamic\\cms\\src\\StaticCaching\\Middleware\\Cache.php(52): Statamic\\StaticCaching\\NoCache\\Session->write()
#7 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\StaticCaching\\Middleware\\Cache->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#8 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\AuthGuard.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#9 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\AuthGuard->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#10 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\AddViewPaths.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#11 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\AddViewPaths->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#12 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\Localize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#13 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\Localize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#14 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\HandleToken.php(13): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#15 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\HandleToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#16 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\StacheLock.php(29): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\StacheLock->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 mywebsite.ie\\app\\Http\\Middleware\\TrackActivity.php(28): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): App\\Http\\Middleware\\TrackActivity->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#20 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#26 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Middleware\\ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#30 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#35 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#36 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(726): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#37 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#38 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(667): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#39 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#40 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(189): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#41 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#42 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\DisableFloc.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#43 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\DisableFloc->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#44 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\CheckMultisite.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#45 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\CheckMultisite->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\CheckComposerJsonScripts.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#47 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\CheckComposerJsonScripts->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#48 mywebsite.ie\\vendor\\statamic\\cms\\src\\Http\\Middleware\\PoweredByHeader.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#49 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Statamic\\Http\\Middleware\\PoweredByHeader->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 mywebsite.ie\\vendor\\livewire\\livewire\\src\\DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Livewire\\DisableBrowserCache->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#52 mywebsite.ie\\vendor\\barryvdh\\laravel-debugbar\\src\\Middleware\\InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#53 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#54 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#55 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#57 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#58 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#59 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#60 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#61 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#62 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#63 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#64 mywebsite.ie\\vendor\\fruitcake\\laravel-cors\\src\\HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#65 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#66 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\Middleware\\TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#67 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#68 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#69 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(164): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#70 mywebsite.ie\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(133): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#71 mywebsite.ie\\public\\index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#72 {main}
"}
Environment
Laravel Version: 9.31.0
PHP Version: 8.1.1
Version: 3.3.37 PROInstallation
Fresh statamic/statamic site via CLI
Antlers Parser
No response
Additional details
No response