statamic / cms

The core Laravel CMS Composer package
https://statamic.com
Other
4.02k stars 528 forks source link

Entries fieldtype causing 500 errors #9091

Closed CjRootStudio closed 9 months ago

CjRootStudio commented 11 months ago

Bug description

As of v4.37.0, the Entries fieldtype seems to be behaving strangely when using the 'Stack Selector' UI Mode.

When clicking the 'Link Existing Item' link on a Blueprint, everything seems to work as expected apart from the usual 'Cmd+S' shortcut seems to stop working after either selecting an entry or just closing the modal window. Along with this, when editing other pages using the same Blueprint, an occasional 500 error will be displayed. The 500 errors are solved by removing the field from the Blueprint.

This behaviour has been replicated on both existing and freshly created Blueprints (where the Entries fieldtype is the only field).

How to reproduce

Logs

No response

Environment

Environment
Application Name: NNAS
Laravel Version: 10.33.0
PHP Version: 8.2.8
Composer Version: 2.5.8
Environment: local
Debug Mode: ENABLED
URL: nnas-core.test/
Maintenance Mode: OFF

Cache
Config: NOT CACHED
Events: NOT CACHED
Routes: NOT CACHED
Views: CACHED

Drivers
Broadcasting: pusher
Cache: redis
Database: mysql
Logs: stack / single
Mail: smtp
Queue: sync
Session: file

Statamic
Addons: 8
Antlers: runtime
Stache Watcher: Disabled
Static Caching: Disabled
Version: 4.37.0 PRO

Statamic Addons
aryehraber/statamic-logbook: 3.1.0
jacksleight/statamic-bard-texstyle: 3.1.4
jonassiewertsen/statamic-livewire: 2.12.0
rootstudio/cache-primer: 0.9
rootstudio/monitor: 0.2
rootstudio/turnstile: 0.2
statamic/collaboration: 0.7.3
statamic/eloquent-driver: 2.10.0

Statamic Eloquent Driver
Asset Containers: file
Assets: file
Blueprints: file
Collection Trees: file
Collections: file
Entries: file
Forms: file
Global Sets: file
Global Variables: file
Navigation Trees: file
Navigations: file
Revisions: file
Taxonomies: file
Terms: file

Installation

Fresh statamic/statamic site via CLI

Antlers Parser

runtime (new)

Additional details

No response

jasonvarga commented 11 months ago

I can't reproduce this. Could you provide the stack trace of the 500 error? It'll be in the log file.

Also, a video of it happening would be good. Thanks!

CjRootStudio commented 10 months ago

No problem, stack trace below.

I've been trying to figure out it it's just an isolated issue with this site but coming up short. Any page using the fieldtype is returning a 500 error when trying to edit in the CP. As previously mentioned, this issue only occurs with the 'Stack Selector' UI mode for the Entries fieldtype. Deleting and re-adding the effected page seems to fix it. Odd one!

Thanks,

[2023-12-05 08:59:54] staging.ERROR: Array to string conversion {"userId":"f407a6dd-e8ec-47f0-908f-e3fbc02f5ee3","exception":"[object] (ErrorException(code: 0): Array to string conversion at /home/forge/demo.staging.uk/vendor/statamic/cms/src/Query/Builder.php:159)
[stacktrace]
#0 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(254): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Query/Builder.php(159): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}()
#2 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Query/Builder.php(97): Statamic\\Query\\Builder->prepareValueAndOperator()
#3 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Stache/Query/EntryQueryBuilder.php(23): Statamic\\Query\\Builder->where()
#4 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Stache/Repositories/EntryRepository.php(43): Statamic\\Stache\\Query\\EntryQueryBuilder->where()
#5 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(353): Statamic\\Stache\\Repositories\\EntryRepository->find()
#6 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Fieldtypes/Entries.php(309): Illuminate\\Support\\Facades\\Facade::__callStatic()
#7 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Fieldtypes/Relationship.php(225): Statamic\\Fieldtypes\\Entries->toItemArray()
#8 [internal function]: Statamic\\Fieldtypes\\Relationship->Statamic\\Fieldtypes\\{closure}()
#9 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(560): array_map()
#10 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(777): Illuminate\\Support\\Arr::map()
#11 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Fieldtypes/Relationship.php(224): Illuminate\\Support\\Collection->map()
#12 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Fieldtypes/Relationship.php(122): Statamic\\Fieldtypes\\Relationship->getItemData()
#13 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Fieldtypes/Entries.php(435): Statamic\\Fieldtypes\\Relationship->preload()
#14 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Fields/Field.php(388): Statamic\\Fieldtypes\\Entries->preload()
#15 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Collections/HigherOrderCollectionProxy.php(60): Statamic\\Fields\\Field->meta()
#16 [internal function]: Illuminate\\Support\\HigherOrderCollectionProxy->Illuminate\\Support\\{closure}()
#17 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(560): array_map()
#18 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(777): Illuminate\\Support\\Arr::map()
#19 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Collections/HigherOrderCollectionProxy.php(59): Illuminate\\Support\\Collection->map()
#20 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Fields/Fields.php(296): Illuminate\\Support\\HigherOrderCollectionProxy->__call()
#21 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Controllers/CP/Collections/EntriesController.php(469): Statamic\\Fields\\Fields->meta()
#22 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Controllers/CP/Collections/EntriesController.php(101): Statamic\\Http\\Controllers\\CP\\Collections\\EntriesController->extractFromFields()
#23 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Statamic\\Http\\Controllers\\CP\\Collections\\EntriesController->edit()
#24 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction()
#25 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#26 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
#27 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(799): Illuminate\\Routing\\Route->run()
#28 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#29 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/DeleteTemporaryFileUploads.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\DeleteTemporaryFileUploads->handle()
#31 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/CountUsers.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\CountUsers->handle()
#33 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/BootUtilities.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\BootUtilities->handle()
#35 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/BootPreferences.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\BootPreferences->handle()
#37 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/BootPermissions.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\BootPermissions->handle()
#39 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/SelectedSite.php(15): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\SelectedSite->handle()
#41 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/Localize.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\Localize->handle()
#43 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/Authorize.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\Authorize->handle()
#45 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/AddToasts.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#46 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\AddToasts->handle()
#47 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/AuthGuard.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#48 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\AuthGuard->handle()
#49 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CP/ContactOutpost.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#50 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CP\\ContactOutpost->handle()
#51 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#52 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#53 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#54 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#55 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#56 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#57 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#58 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#59 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#60 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#61 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#62 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#63 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#64 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/SwapExceptionHandler.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#65 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\SwapExceptionHandler->handle()
#66 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#67 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\\Pipeline\\Pipeline->then()
#68 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(777): Illuminate\\Routing\\Router->runRouteWithinStack()
#69 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(741): Illuminate\\Routing\\Router->runRoute()
#70 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Routing/Router.php(730): Illuminate\\Routing\\Router->dispatchToRoute()
#71 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#72 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#73 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/StopImpersonating.php(12): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#74 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\StopImpersonating->handle()
#75 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/DisableFloc.php(17): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#76 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\DisableFloc->handle()
#77 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CheckMultisite.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#78 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CheckMultisite->handle()
#79 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/CheckComposerJsonScripts.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#80 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\CheckComposerJsonScripts->handle()
#81 /home/forge/demo.staging.uk/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#82 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Statamic\\Http\\Middleware\\PoweredByHeader->handle()
#83 /home/forge/demo.staging.uk/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#84 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Livewire\\DisableBrowserCache->handle()
#85 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#86 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#87 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#88 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#89 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#90 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#91 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#92 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#93 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#94 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#95 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#96 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#97 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#98 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#99 /home/forge/demo.staging.uk/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#100 /home/forge/demo.staging.uk/public/index.php(51): Illuminate\\Foundation\\Http\\Kernel->handle()
#101 {main}
"}
CjRootStudio commented 10 months ago

Just a quick update as I've narrowed this issue down slightly:

The reported behaviour only seems to happen if I select a Collection that has a 'Date' field added to the Blueprint. That can be either by enabling publish dates on the collection or a custom date field.

New steps to reproduce:

duncanmcclean commented 10 months ago

I'm not able to reproduce this using either of the reproduction steps provided. What does the blueprint of the other collection look like (the one with the date field)?

duncanmcclean commented 9 months ago

Since I'm not able to reproduce and haven't heard back from you since my last comment, I'm going to close this issue now.

If you're still experiencing this issue, please provide the collection's blueprint and we can re-open.