craftcms / commerce

Fully integrated ecommerce for Craft CMS.
https://craftcms.com/commerce
Other
215 stars 169 forks source link

[5.x]: After updating to Craft and Commerce 5, when I create a new field in Craft itself I get a craft\behaviors\CustomFieldBehavior error. #3503

Closed sunscreem closed 1 month ago

sunscreem commented 1 month ago

What happened?

Description

Hopefully the description covers it. When you create a field, not in commerce, in Craft itself, with the plug active I'm getting this:

ReflectionException: Class "craft\behaviors\CustomFieldBehavior" does not exist in /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php:507

I've tried emptying storage/runtime , composer dump. and clearing all caches but the issue persists. I've not seen any other places in Craft where this seems to happen (yet).

Weirdly, hitting the front end, then going back into the control panel clears it!

Stack trace:
#0 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(507): ReflectionClass->__construct()
#1 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(385): yii\di\Container->getDependencies()
#2 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(170): yii\di\Container->build()
#3 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get()
#4 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(756): yii\BaseYii::createObject()
#5 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(740): yii\base\Component->attachBehaviorInternal()
#6 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(465): yii\base\Component->ensureBehaviors()
#7 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/db/Query.php(51): yii\base\Component->hasEventHandlers()
#8 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\db\Query->init()
#9 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/elements/db/ElementQuery.php(575): yii\base\BaseObject->__construct()
#10 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/elements/User.php(273): craft\elements\db\ElementQuery->__construct()
#11 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/elements/User.php(555): craft\elements\User::find()
#12 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/web/User.php(698): craft\elements\User::findIdentity()
#13 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/web/User.php(452): yii\web\User->renewAuthStatus()
#14 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/web/User.php(199): craft\web\User->renewAuthStatus()
#15 /home/forge/jc.sunscreem.xyz/vendor/craftcms/commerce/src/Plugin.php(1046): yii\web\User->getIdentity()
#16 [internal function]: craft\commerce\Plugin::craft\commerce\{closure}()
#17 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Event.php(312): call_user_func()
#18 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(642): yii\base\Event::trigger()
#19 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/models/FieldLayout.php(415): yii\base\Component->trigger()
#20 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/models/FieldLayout.php(342): craft\models\FieldLayout->getAvailableNativeFields()
#21 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(180): craft\models\FieldLayout->setTabs()
#22 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/BaseYii.php(558): yii\base\Component->__set()
#23 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/BaseObject.php(107): yii\BaseYii::configure()
#24 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/base/Model.php(78): yii\base\BaseObject->__construct()
#25 [internal function]: craft\base\Model->__construct()
#26 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(419): ReflectionClass->newInstanceArgs()
#27 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(170): yii\di\Container->build()
#28 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get()
#29 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/Craft.php(70): yii\BaseYii::createObject()
#30 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Fields.php(990): Craft::createObject()
#31 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Fields.php(825): craft\services\Fields->createLayout()
#32 [internal function]: craft\services\Fields->craft\services\{closure}()
#33 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/base/MemoizableArray.php(90): call_user_func()
#34 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/base/MemoizableArray.php(76): craft\base\MemoizableArray->normalizeByKey()
#35 [internal function]: craft\base\MemoizableArray->craft\base\{closure}()
#36 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/base/MemoizableArray.php(76): array_map()
#37 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/base/MemoizableArray.php(104): craft\base\MemoizableArray->normalize()
#38 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Fields.php(917): craft\base\MemoizableArray->all()
#39 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/Craft.php(370): craft\services\Fields->getAllLayouts()
#40 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/Craft.php(242): Craft::_fields()
#41 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/Craft.php(205): Craft::_autoloadCustomFieldBehavior()
#42 [internal function]: Craft::autoload()
#43 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(507): ReflectionClass->__construct()
#44 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(385): yii\di\Container->getDependencies()
#45 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(170): yii\di\Container->build()
#46 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get()
#47 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(756): yii\BaseYii::createObject()
#48 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(740): yii\base\Component->attachBehaviorInternal()
#49 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Component.php(465): yii\base\Component->ensureBehaviors()
#50 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/db/Query.php(51): yii\base\Component->hasEventHandlers()
#51 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/elements/db/EntryQuery.php(305): craft\db\Query->init()
#52 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\elements\db\EntryQuery->init()
#53 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/elements/db/ElementQuery.php(575): yii\base\BaseObject->__construct()
#54 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/elements/db/EntryQuery.php(264): craft\elements\db\ElementQuery->__construct()
#55 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/elements/Entry.php(216): craft\elements\db\EntryQuery->__construct()
#56 /home/forge/jc.sunscreem.xyz/vendor/studioespresso/craft-scout/src/ScoutIndex.php(44): craft\elements\Entry::find()
#57 /home/forge/jc.sunscreem.xyz/vendor/studioespresso/craft-scout/src/ScoutIndex.php(49): rias\scout\ScoutIndex->__construct()
#58 /home/forge/jc.sunscreem.xyz/config/scout.php(21): rias\scout\ScoutIndex::create()
#59 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Config.php(289): include('...')
#60 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Config.php(281): craft\services\Config->_configFromFileInternal()
#61 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Plugins.php(933): craft\services\Config->getConfigFromFile()
#62 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Plugins.php(233): craft\services\Plugins->createPlugin()
#63 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/services/Plugins.php(302): craft\services\Plugins->loadPlugins()
#64 /home/forge/jc.sunscreem.xyz/vendor/verbb/bugsnag/src/Bootstrap.php(17): craft\services\Plugins->getPlugin()
#65 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Application.php(325): verbb\bugsnag\Bootstrap->bootstrap()
#66 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/web/Application.php(127): yii\base\Application->bootstrap()
#67 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Application.php(271): craft\web\Application->bootstrap()
#68 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/web/Application.php(104): yii\base\Application->init()
#69 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\web\Application->init()
#70 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/base/Application.php(204): yii\base\BaseObject->__construct()
#71 [internal function]: yii\base\Application->__construct()
#72 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(419): ReflectionClass->newInstanceArgs()
#73 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/di/Container.php(170): yii\di\Container->build()
#74 /home/forge/jc.sunscreem.xyz/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get()
#75 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/src/Craft.php(70): yii\BaseYii::createObject()
#76 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/bootstrap/bootstrap.php(316): Craft::createObject()
#77 /home/forge/jc.sunscreem.xyz/vendor/craftcms/cms/bootstrap/web.php(40): require('...')
#78 /home/forge/jc.sunscreem.xyz/web/index.php(13): require('...')
#79 {main}

I'll look further if there's something custom going on here that could be causing this, I'm hoping that this is enough for someone to spot the issue more immediately.

Craft CMS version

5.1.3

Craft Commerce version

5.0.6

PHP version

8.2

Operating system and version

No response

Database type and version

No response

Image driver and version

No response

Installed plugins and versions

-

linear[bot] commented 1 month ago

PT-1738 [5.x]: After updating to Craft and Commerce 5, when I create a new field in Craft itself I get a craft\behaviors\CustomFieldBehavior error.

sunscreem commented 1 month ago

I did some digging and now replacing this with #3505