statamic / eloquent-driver

Provides support for storing your Statamic data in a database, rather than flat files.
https://statamic.dev/tips/storing-content-in-a-database
MIT License
104 stars 71 forks source link

Settings a focus point on an asset stored in db errors in the control panel #239

Closed 1stevengrant closed 5 months ago

1stevengrant commented 5 months ago

Bug description

I have assets stored in an S3 bucket that are hooked up to eloquent.

When I try set the focus of an asset in the cp, I run into

foreach() argument must be of type array|object, string given 

How to reproduce

  1. Setup eloquent driver
  2. migrate assets
  3. select an asset in an entry
  4. try set the focal point
  5. save the asset
  6. see the error

Logs

No response

Environment

Environment
Application Name: Statamic
Laravel Version: 10.43.0
PHP Version: 8.2.15
Composer Version: 2.5.5
Environment: local
Debug Mode: ENABLED
URL: harveststatamic.test
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
Mail: smtp
Queue: sync
Session: file

Statamic
Addons: 1
Antlers: runtime
Sites: 4 (Harvest Glasgow, Harvest Ayr, Rooted Conference, Rooted Churches)
Stache Watcher: Enabled
Static Caching: Disabled
Version: 4.48.0 PRO

Statamic Addons
statamic/eloquent-driver: 3.0.5

Statamic Eloquent Driver
Asset Containers: eloquent
Assets: eloquent
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 (default)

### Additional details

_No response_
duncanmcclean commented 5 months ago

For reference, here's the full stack trace:

[2024-02-09 11:20:19] local.ERROR: foreach() argument must be of type array|object, string given {"userId":"f67039a5-cf50-4acb-bde2-bfe8931d3a4f","exception":"[object] (ErrorException(code: 0): foreach() argument must be of type array|object, string given at /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Collections/Arr.php:114)
[stacktrace]
#0 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(255): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'foreach() argum...', '/Users/duncan/C...', 114)
#1 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(114): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}(2, 'foreach() argum...', '/Users/duncan/C...', 114)
#2 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Support/Arr.php(323): Illuminate\\Support\\Arr::dot('')
#3 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Data/DataReferenceUpdater.php(250): Statamic\\Support\\Arr::__callStatic('dot', Array)
#4 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Assets/AssetReferenceUpdater.php(61): Statamic\\Data\\DataReferenceUpdater->updateArrayValue(Object(Statamic\\Fields\\Field), NULL)
#5 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(240): Statamic\\Assets\\AssetReferenceUpdater->Statamic\\Assets\\{closure}(Object(Statamic\\Fields\\Field), 'photo')
#6 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Assets/AssetReferenceUpdater.php(58): Illuminate\\Support\\Collection->each(Object(Closure))
#7 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Assets/AssetReferenceUpdater.php(37): Statamic\\Assets\\AssetReferenceUpdater->updateAssetsFieldValues(Object(Illuminate\\Support\\Collection), NULL)
#8 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Data/DataReferenceUpdater.php(63): Statamic\\Assets\\AssetReferenceUpdater->recursivelyUpdateFields(Object(Illuminate\\Support\\Collection))
#9 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Listeners/UpdateAssetReferences.php(93): Statamic\\Data\\DataReferenceUpdater->updateReferences('/harvest-glasgo...', 'harvest-glasgow...')
#10 [internal function]: Statamic\\Listeners\\UpdateAssetReferences->Statamic\\Listeners\\{closure}(Object(Statamic\\Entries\\Entry), 16)
#11 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(558): array_map(Object(Closure), Array, Array)
#12 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(777): Illuminate\\Support\\Arr::map(Array, Object(Closure))
#13 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Listeners/UpdateAssetReferences.php(90): Illuminate\\Support\\Collection->map(Object(Closure))
#14 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Listeners/UpdateAssetReferences.php(46): Statamic\\Listeners\\UpdateAssetReferences->replaceReferences(Object(Statamic\\Eloquent\\Assets\\Asset), '/harvest-glasgo...', 'harvest-glasgow...')
#15 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php(107): Statamic\\Listeners\\UpdateAssetReferences->handleSaved(Object(Statamic\\Events\\AssetSaved))
#16 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Events\\CallQueuedListener->handle(Object(Illuminate\\Foundation\\Application))
#17 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#18 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#19 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#20 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#21 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\\Container\\Container->call(Array)
#22 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Bus\\Dispatcher->Illuminate\\Bus\\{closure}(Object(Illuminate\\Events\\CallQueuedListener))
#23 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Events\\CallQueuedListener))
#24 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#25 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(123): Illuminate\\Bus\\Dispatcher->dispatchNow(Object(Illuminate\\Events\\CallQueuedListener), false)
#26 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Queue\\CallQueuedHandler->Illuminate\\Queue\\{closure}(Object(Illuminate\\Events\\CallQueuedListener))
#27 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Events\\CallQueuedListener))
#28 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(122): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#29 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(70): Illuminate\\Queue\\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\\Queue\\Jobs\\SyncJob), Object(Illuminate\\Events\\CallQueuedListener))
#30 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\\Queue\\CallQueuedHandler->call(Object(Illuminate\\Queue\\Jobs\\SyncJob), Array)
#31 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(43): Illuminate\\Queue\\Jobs\\Job->fire()
#32 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Queue/Queue.php(59): Illuminate\\Queue\\SyncQueue->push(Object(Illuminate\\Events\\CallQueuedListener), '', NULL)
#33 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(633): Illuminate\\Queue\\Queue->pushOn(NULL, Object(Illuminate\\Events\\CallQueuedListener))
#34 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(552): Illuminate\\Events\\Dispatcher->queueHandler('Statamic\\\\Listen...', 'handleSaved', Array)
#35 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(478): Illuminate\\Events\\Dispatcher->Illuminate\\Events\\{closure}(Object(Statamic\\Events\\AssetSaved))
#36 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(286): Illuminate\\Events\\Dispatcher->Illuminate\\Events\\{closure}('Statamic\\\\Events...', Array)
#37 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(266): Illuminate\\Events\\Dispatcher->invokeListeners('Statamic\\\\Events...', Array, false)
#38 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(433): Illuminate\\Events\\Dispatcher->dispatch('Statamic\\\\Events...')
#39 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Events/Event.php(21): event(Object(Statamic\\Events\\AssetSaved))
#40 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Assets/Asset.php(611): Statamic\\Events\\Event::dispatch(Object(Statamic\\Eloquent\\Assets\\Asset))
#41 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Controllers/CP/Assets/AssetsController.php(58): Statamic\\Assets\\Asset->save()
#42 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Statamic\\Http\\Controllers\\CP\\Assets\\AssetsController->update(Object(Illuminate\\Http\\Request), Object(Statamic\\Eloquent\\Assets\\Asset))
#43 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction('update', Array)
#44 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Statamic\\Http\\Controllers\\CP\\Assets\\AssetsController), 'update')
#45 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
#46 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Router.php(806): Illuminate\\Routing\\Route->run()
#47 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#48 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/DeleteTemporaryFileUploads.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#49 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\DeleteTemporaryFileUploads->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/CountUsers.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\CountUsers->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#52 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/BootUtilities.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#53 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\BootUtilities->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#54 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/BootPreferences.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#55 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\BootPreferences->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/BootPermissions.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#57 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\BootPermissions->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#58 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/SelectedSite.php(15): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#59 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\SelectedSite->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#60 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/Localize.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#61 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\Localize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#62 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/Authorize.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#63 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\Authorize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#64 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/AddToasts.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#65 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\AddToasts->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#66 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/AuthGuard.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#67 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\AuthGuard->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#68 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CP/ContactOutpost.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#69 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CP\\ContactOutpost->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#70 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#71 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#72 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#73 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#74 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#75 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#76 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#77 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/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))
#78 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#79 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#80 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#81 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#82 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#83 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/SwapExceptionHandler.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#84 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\SwapExceptionHandler->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#85 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#86 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Router.php(805): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#87 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Router.php(784): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#88 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Router.php(748): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#89 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Routing/Router.php(737): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#90 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#91 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#92 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/StopImpersonating.php(12): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#93 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\StopImpersonating->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#94 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/DisableFloc.php(17): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#95 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\DisableFloc->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#96 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CheckMultisite.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#97 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CheckMultisite->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#98 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/CheckComposerJsonScripts.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#99 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\CheckComposerJsonScripts->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#100 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#101 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Statamic\\Http\\Middleware\\PoweredByHeader->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#102 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#103 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#104 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#105 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#106 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#107 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#108 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#109 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#110 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#111 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#112 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#113 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#114 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#115 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#116 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#117 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#118 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#119 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#120 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#121 /Users/duncan/Code/DoubleThreeDigital/harvest-statamic/public/index.php(51): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#122 /Users/duncan/.composer/vendor/laravel/valet/server.php(110): require('/Users/duncan/C...')
#123 {main}
"} 
ryanmitchell commented 5 months ago

Duncan loves deferring eloquent stuff to me ;)

It seems like it's tripping over an asset field thats not max_items: 1 but is stored in the db as a string rather than an array. Are you able to dig into the data a bit (or add a dump at the point of the error) to see what the field value is?

duncanmcclean commented 5 months ago

Thanks, that was it!

We had an entry referencing an asset as a string but "Max Items" on the Assets field wasn't set to 1.