Skip to content

[5.x]: Craft CMS 5 upgrade causes Neo field content loss on QA environment despite successful migrations #18832

@Sebas436

Description

@Sebas436

Description

After upgrading from Craft CMS 4 to Craft CMS 5, content stored in Neo fields is missing on one environment, despite the upgrade succeeding without errors on other environments.

The issue only occurs on our QA server.

##Steps Taken

We followed the official Craft CMS upgrade guide: https://craftcms.com/docs/5.x/upgrade.html?utm_source=chatgpt.com

We also followed the Neo migration guidance here: https://github.com/spicywebau/craft-neo/issues/943?utm_source=chatgpt.com

##What Happened

  • Upgraded locally from Craft CMS 4 → Craft CMS 5.
  • Tested locally thoroughly — everything worked correctly.
  • Deployed to our development server.
  • Ran migrations successfully with no errors.
  • Verified that content was still intact on development.
  • Deployed the same code/database migration process to QA.
  • Migrations completed successfully on QA as well.
  • However, a large amount of content is now missing on QA.
  • Specific Content Affected

The missing content is inside a Neo field used as a page builder.

The structure is roughly:

  • Entry
    • Neo field (page builder)
      • Multiple Neo block types
        • Multiple nested subfields/content fields

After the upgrade on QA:

  • The Neo field itself still exists
  • The block structure appears to exist
  • But the content inside the Neo blocks/subfields is empty/missing

##Additional Notes

  • Local environment works correctly
  • Development server works correctly
  • QA server loses content
  • The same upgrade process was used across environments
  • Migrations complete without visible errors
  • No obvious database migration failures appear in logs

At this point we are unsure whether:

  • some Neo content migration is partially failing silently
  • If there is environment-specific behavior.
  • Or if some content/state is not being properly transformed during the upgrade.

Steps to reproduce

  1. Start with a Craft CMS 4 project using Neo as a page builder field.
  2. Create entries containing populated Neo blocks with multiple nested subfields.
  3. Upgrade the project to Craft CMS 5 following the official upgrade documentation.
  4. Follow the Neo migration guidance from issue Option to keep CP language in English #943.
  5. Run all Craft and plugin migrations locally.
  6. Verify that Neo content still exists locally.
  7. Deploy the same upgraded codebase to another environment (in our case: QA).
  8. Run migrations successfully on that environment.
  9. Open entries containing the Neo field.

Expected behavior

All Neo block content and nested subfield content should remain intact after the upgrade.

Actual behavior

The Neo field and block structure still exist, but the content inside the Neo blocks/subfields is empty or missing.

Has anyone encountered this behavior before, or is there additional logging/debugging we can enable to identify why Neo content is being lost during the Craft 5 upgrade?

Craft CMS version

5.9.22

PHP version

8.3.3

Operating system and version

Rocky Linux 9.7

Database type and version

MariaDB 10.11.16

Image driver and version

No response

Installed plugins and versions

  • spicyweb/craft-neo: 5.5.8

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions