Error messages do not indicate that public/assets is not writable
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 42/100
Research direction
Start with the upload path named in the stack trace: AssetsController.php and Asset.php, then follow the image-processing path through ImageGenerator.php. Reproduce the report by making public/assets unwritable and uploading an image and a CSV. Done means the upload error identifies the unwritable directory rather than reporting misleading file or timestamp errors.
Written by the indexing model from the issue text.
Description
Bug description
Error messages do not indicate that public/assets is not writable
While uploading a file, I've been given messages such as:
Image [image.png] does not actually appear to be a valid image. for an image file
or
Carbon\Carbon::createFromTimestamp(): Argument #1 ($timestamp) must be of type string|int|float, null given, called in /srv/http/xxxxxxx/vendor/statamic/cms/src/Assets/Asset.php on line 598 for a CSV file
I was finally able to track down the cause, but it would have been much simpler to be given the proper information.
How to reproduce
Just make the public/assets folder not writeable by the www-data user on Linux, then try to upload any file.
Logs
[2025-07-17 11:21:29] local.ERROR: Image [2278-0066.jpg] does not actually appear to be a valid image. {"userId":"f534ed69-d59b-4a23-8690-c0f98924e409","exception":"[object] (Exception(code: 0): Image [2278-0066.jpg] does not actually appear to be a valid image. at /srv/http/xxxxxx/vendor/statamic/cms/src/Imaging/ImageGenerator.php:309)
[stacktrace]
#0 /srv/http/xxxxxx/vendor/statamic/cms/src/Imaging/ImageGenerator.php(255): Statamic\\Imaging\\ImageGenerator->validateImage()
#1 /srv/http/xxxxxx/vendor/statamic/cms/src/Imaging/ImageGenerator.php(167): Statamic\\Imaging\\ImageGenerator->generate()
#2 /srv/http/xxxxxx/vendor/statamic/cms/src/Imaging/ImageGenerator.php(150): Statamic\\Imaging\\ImageGenerator->doGenerateByAsset()
#3 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(472): Statamic\\Imaging\\ImageGenerator->{closure:Statamic\\Imaging\\ImageGenerator::generateByAsset():150}()
#4 /srv/http/xxxxxx/vendor/statamic/cms/src/Imaging/ImageGenerator.php(148): Illuminate\\Cache\\Repository->rememberForever()
#5 /srv/http/xxxxxx/vendor/statamic/cms/src/Imaging/PresetGenerator.php(31): Statamic\\Imaging\\ImageGenerator->generateByAsset()
#6 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(271): Statamic\\Imaging\\PresetGenerator->{closure:Statamic\\Imaging\\PresetGenerator::generate():30}()
#7 /srv/http/xxxxxx/vendor/statamic/cms/src/Imaging/PresetGenerator.php(30): Illuminate\\Support\\Collection->each()
#8 /srv/http/xxxxxx/vendor/statamic/cms/src/Listeners/GeneratePresetImageManipulations.php(50): Statamic\\Imaging\\PresetGenerator->generate()
#9 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php(113): Statamic\\Listeners\\GeneratePresetImageManipulations->handle()
#10 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Events\\CallQueuedListener->handle()
#11 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::{closure:Illuminate\\Container\\BoundMethod::call():35}()
#12 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure()
#13 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#14 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Container/Container.php(754): Illuminate\\Container\\BoundMethod::call()
#15 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\\Container\\Container->call()
#16 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Bus\\Dispatcher->{closure:Illuminate\\Bus\\Dispatcher::dispatchNow():129}()
#17 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():167}()
#18 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(136): Illuminate\\Pipeline\\Pipeline->then()
#19 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(125): Illuminate\\Bus\\Dispatcher->dispatchNow()
#20 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Queue\\CallQueuedHandler->{closure:Illuminate\\Queue\\CallQueuedHandler::dispatchThroughMiddleware():120}()
#21 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():167}()
#22 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(120): Illuminate\\Pipeline\\Pipeline->then()
#23 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(68): Illuminate\\Queue\\CallQueuedHandler->dispatchThroughMiddleware()
#24 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\\Queue\\CallQueuedHandler->call()
#25 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(130): Illuminate\\Queue\\Jobs\\Job->fire()
#26 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(110): Illuminate\\Queue\\SyncQueue->executeJob()
#27 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Queue/Queue.php(63): Illuminate\\Queue\\SyncQueue->push()
#28 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(636): Illuminate\\Queue\\Queue->pushOn()
#29 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(555): Illuminate\\Events\\Dispatcher->queueHandler()
#30 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(481): Illuminate\\Events\\Dispatcher->{closure:Illuminate\\Events\\Dispatcher::createQueuedHandlerCallable():549}()
#31 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(288): Illuminate\\Events\\Dispatcher->{closure:Illuminate\\Events\\Dispatcher::createClassListener():474}()
#32 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(268): Illuminate\\Events\\Dispatcher->invokeListeners()
#33 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(506): Illuminate\\Events\\Dispatcher->dispatch()
#34 /srv/http/xxxxxx/vendor/statamic/cms/src/Events/Event.php(21): event()
#35 /srv/http/xxxxxx/vendor/statamic/cms/src/Assets/Asset.php(933): Statamic\\Events\\Event::dispatch()
#36 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Controllers/CP/Assets/AssetsController.php(118): Statamic\\Assets\\Asset->upload()
#37 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Statamic\\Http\\Controllers\\CP\\Assets\\AssetsController->store()
#38 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction()
#39 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#40 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#41 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\\Routing\\Route->run()
#42 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Routing\\Router->{closure:Illuminate\\Routing\\Router::runRouteWithinStack():807}()
#43 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/DeleteTemporaryFileUploads.php(18): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():167}()
#44 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\DeleteTemporaryFileUploads->handle()
#45 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/AddVaryHeaderToResponse.php(11): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#46 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\AddVaryHeaderToResponse->handle()
#47 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/CountUsers.php(18): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#48 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\CountUsers->handle()
#49 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/BootUtilities.php(14): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#50 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\BootUtilities->handle()
#51 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/BootPreferences.php(14): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#52 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\BootPreferences->handle()
#53 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/BootPermissions.php(14): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#54 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\BootPermissions->handle()
#55 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/SelectedSite.php(15): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#56 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\SelectedSite->handle()
#57 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/Localize.php(19): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#58 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\Localize->handle()
#59 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/Authorize.php(25): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#60 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\Authorize->handle()
#61 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#62 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#63 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/AddToasts.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#64 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\AddToasts->handle()
#65 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/AuthGuard.php(14): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#66 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\AuthGuard->handle()
#67 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CP/ContactOutpost.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#68 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CP\\ContactOutpost->handle()
#69 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#70 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#71 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(66): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#72 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Session\\Middleware\\AuthenticateSession->handle()
#73 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(87): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#74 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#75 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(48): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#76 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#77 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(120): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#78 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#79 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Session\\Middleware\\StartSession->handle()
#80 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(36): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#81 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#82 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(74): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#83 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#84 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/SwapExceptionHandler.php(19): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#85 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\SwapExceptionHandler->handle()
#86 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#87 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then()
#88 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\\Routing\\Router->runRouteWithinStack()
#89 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\\Routing\\Router->runRoute()
#90 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\\Routing\\Router->dispatchToRoute()
#91 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#92 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Foundation\\Http\\Kernel->{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}()
#93 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/StopImpersonating.php(12): Illuminate\\Pipeline\\Pipeline->{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():167}()
#94 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\StopImpersonating->handle()
#95 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/DisableFloc.php(17): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#96 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\DisableFloc->handle()
#97 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CheckMultisite.php(15): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#98 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CheckMultisite->handle()
#99 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/CheckComposerJsonScripts.php(14): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#100 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\CheckComposerJsonScripts->handle()
#101 /srv/http/xxxxxx/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(18): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#102 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Statamic\\Http\\Middleware\\PoweredByHeader->handle()
#103 /srv/http/xxxxxx/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#104 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle()
#105 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#106 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#107 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#108 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(47): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#109 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#110 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#111 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#112 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#113 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#114 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(48): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#115 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Http\\Middleware\\HandleCors->handle()
#116 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#117 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#118 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#119 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#120 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#121 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(208): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle()
#122 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():183}:184}()
#123 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#124 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#125 /srv/http/xxxxxx/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1219): Illuminate\\Foundation\\Http\\Kernel->handle()
#126 /srv/http/xxxxxx/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest()
#127 {main}
"}
Environment
Environment
Application Name: Statamic
Laravel Version: 12.20.0
PHP Version: 8.4.10
Composer Version: 2.8.8
Environment: local
Debug Mode: ENABLED
URL: teccart.test
Maintenance Mode: OFF
Timezone: UTC
Locale: en
Cache
Config: NOT CACHED
Events: NOT CACHED
Routes: NOT CACHED
Views: CACHED
Drivers
Broadcasting: log
Cache: file
Database: sqlite
Logs: stack / single
Mail: log
Queue: sync
Session: file
Storage
public/storage: NOT LINKED
Statamic
Addons: 0
Sites: 1
Stache Watcher: Enabled (auto)
Static Caching: Disabled
Version: 5.60.0 PRO
Installation
Existing Laravel app
Additional details
No response
- Dominant language
- PHP
- Stars
- 4.9k
- Forks
- 647
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 102
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from statamic/cms
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
assets
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
accessibility
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
antlers
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 2 days
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
smarty-php/smarty#1215 ·
-
sync-en
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
sync-en
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 4 days