Skip to content

Troubleshooting

Class "Magewirephp\Magewire\Component" not found at setup:di:compile

Section titled “Class "Magewirephp\Magewire\Component" not found at setup:di:compile”

You installed cda/module-custom-fields-hyva-compat on a store without Hyvä Checkout. Either install Hyvä:

Terminal window
composer require hyva-themes/magento2-hyva-checkout

Or disable the compat module:

Terminal window
bin/magento module:disable CDA_CustomFieldsHyvaCompat
bin/magento setup:upgrade

401 Unauthorized when running composer require

Section titled “401 Unauthorized when running composer require”

Your Composer token isn’t being picked up. Check:

Terminal window
composer config -l | grep bearer

You should see [bearer.magento.creativdigital.ro] = <token>. If not, re-add with:

Terminal window
composer config bearer.magento.creativdigital.ro YOUR_TOKEN

Could not create an acl object at admin login

Section titled “Could not create an acl object at admin login”

A custom ACL XML elsewhere is re-nesting CDA resources under Magento_Backend::admin. Magento 2.4.9 / Mage-OS 3 enforces unique resource IDs across the ACL tree. Open vendor/cda/module-custom-fields/etc/acl.xml — every resource should declare flat under Magento_Backend::admin, not re-nested under parent paths. If you’ve modified the file, restore from the original.

Heartbeat completed — status: INVALID after Save Config + Verify Now

Section titled “Heartbeat completed — status: INVALID after Save Config + Verify Now”
  1. Confirm your license key is exactly what was emailed (no extra spaces, no quotes).
  2. Open the field again to re-paste — Magento’s “obscure” field type hides characters, so type errors are easy. Use a text editor first.
  3. If still INVALID, your license may have been refunded or transferred. Email office@creativdigital.ro with your license key.

License is already bound to <other-domain>

Section titled “License is already bound to <other-domain>”

One license = one production domain. To transfer:

  1. Email office@creativdigital.ro with the license key and new domain.
  2. Wait for our confirmation reply (1 business day).
  3. Run bin/magento cache:flush on the new domain and click Verify Now in admin — the heartbeat will re-bind to the new host.

Check the Magento exception log:

Terminal window
tail -50 var/log/exception.log | grep -i 'cda\|heartbeat'

Common causes:

  • Firewall blocks outbound HTTPS — the heartbeat needs to reach magento.creativdigital.ro (port 443). If your server is in a locked-down VPC, allow this domain in egress.
  • DNS not resolving — try curl -I https://magento.creativdigital.ro/ from your Magento server. If Could not resolve, your DNS resolver is broken.
  • Outdated cron job — make sure Magento cron is running. The heartbeat is the daily cron cda_customfields_license_heartbeat. Run bin/magento cron:run manually to test.

”Trial expired” banner won’t go away after entering license

Section titled “”Trial expired” banner won’t go away after entering license”

Click Verify Now explicitly after Save Config. The banner reflects the cached license status until the next heartbeat — Verify Now forces an immediate check.

Preset chips open the create form with empty fields

Section titled “Preset chips open the create form with empty fields”

You’re on v3.9.4 or earlier. Upgrade to v3.9.5+ — the form data shape was wrapped under field.* which the UI Component framework couldn’t unwrap, so prefilled values silently failed to render.

Terminal window
composer update cda/magento2-custom-fields
bin/magento cache:flush

Admin pageloads throw TypeError: ltrim() ... LicenseMessage given

Section titled “Admin pageloads throw TypeError: ltrim() ... LicenseMessage given”

You’re on v3.9.0. The license-warning notification was registered with the wrong DI item type. Upgrade to v3.9.1+:

Terminal window
composer update cda/magento2-custom-fields
bin/magento setup:di:compile
bin/magento cache:flush

Walk through these checks in order:

  1. Is the field active? Field grid shows status as a green dot.
  2. Does applies_to match the surface you’re testing? Cart-page fields don’t render on PDP, etc.
  3. Visibility scoping — are you logged in as a customer group that’s allowed? On a store view that’s allowed? Try the Not Logged In group on the default store first.
  4. Cache — run bin/magento cache:flush after any field config change.
  5. For Hyvä themes — confirm CDA_CustomFieldsHyvaCompat module is enabled and your theme’s Tailwind config includes CDA template paths.

Check that the observer ran:

Terminal window
tail -50 var/log/system.log | grep -i 'cda\|observer'

Common cause: the form posted but the customer-account observer hasn’t fired because you’re saving outside the standard customer registration / save flow. The cart-page surface saves on checkout_cart_save_after; the PDP saves on checkout_cart_product_add_after; etc. Custom checkout flows may bypass these observer triggers.

Storefront field styling doesn’t match theme

Section titled “Storefront field styling doesn’t match theme”

CDA renders using the theme’s own CSS classes (.field, .label, .control, .input-text on Luma; Tailwind utilities on Hyvä). If field styling looks off, it’s almost always because:

  • Theme has unusually-specific CSS overrides that target only first-party form fields by ID.
  • Custom child theme removed default form CSS without re-adding it.

To debug: open a field in your browser DevTools, compare the rendered HTML to a stock Magento field on the same surface. The classes should match.

Upload returns “File type not allowed”

Section titled “Upload returns “File type not allowed””

The file’s MIME type, detected from its actual byte content (NOT extension), isn’t on the allow list. Check:

Stores → Configuration → CDA → Custom Fields → File & Image Uploads → Allowed MIME Types

Add the type to the comma-separated list and Save Config.

Section titled “Upload succeeds but download link returns 403”

The 4-tier ownership ladder is rejecting the requester. Most likely the file was uploaded during a guest session and the customer logged in afterwards (session changed), or the order hasn’t been placed yet (only quote/admin paths match).

For admin testing: log into admin and the download will work via the admin-session path.

Email office@creativdigital.ro with:

  1. Your license key
  2. Magento version (output of bin/magento --version)
  3. CDA version (output of composer show cda/module-custom-fields | grep versions)
  4. Theme + Hyvä installed or not
  5. The exact error message and the last 30 lines of var/log/exception.log

We reply within 1 business day. If it’s a bug we can reproduce, the fix ships in the next patch release that auto-flows to your composer update.