Solution Import Successful but Field Names and Choice Labels Not Updating in Dynamics 365

Some are more confusing because everything looks fine—the solution imports successfully, no errors are shown and yet the application does not behave the way you expect.

I recently faced one such strange situation where a managed solution imported without any issues, but field display names and choice (option set) labels were not updated in the target environment. Even after deployment, the UI continued to show old names.

The situation I faced

This was a normal deployment flow:

  • Development environment → Target environment (Test / QA)
  • Managed solution
  • Model-driven app with multiple tables

In the development environment, I had made some clean UI improvements:

  • Renamed a few column display names for better business clarity
  • Updated labels for some choice (option set) values
  • No schema name changes—only label updates

Everything looked correct in Dev.
The solution export and import completed successfully in the target environment.

But after deployment:

  • The app still showed old field names
  • Choice values were correct, but labels were outdated
  • Publish All Customizations didn’t help
  • Browser refresh or cache clear made no difference

At first glance, it felt like the solution import had silently ignored my changes.

Why this issue is Strange

From a developer’s point of view, this is where the confusion starts:

  • The solution import succeeds
  • No warnings or dependency issues
  • No conflicts reported
  • Deployment status shows success

So naturally, the question is:

If the solution imported successfully, why didn’t my UI changes reflect?

The answer lies in how Dataverse handles labels internally, which is very different from how it handles schema or structural changes.

The real reason: labels follow layers and language rules

In Dataverse, field display names and choice labels are not simple metadata updates.

They are:

  • Stored as labels, not schema
  • Language-specific
  • Controlled by solution layering
  • Influenced by unmanaged customizations and patches

In my case, the target environment already had:

  • Older unmanaged customizations
  • Or changes coming from a patch solution

Because of this, the managed solution import:

  • Did not overwrite the existing label layer
  • Respected the higher-priority customization
  • Resulted in the old labels remaining visible, even though the import succeeded

This behavior is expected in Dataverse—but it’s not obvious unless you’ve hit this issue before.

What didn’t work for me

Before finding the real fix, I tried the usual things:

  • Publish All Customizations
  • Re-importing the same solution
  • Opening the table and saving it again
  • Clearing browser cache

None of these helped, because the problem was not publishing or caching—it was layer precedence.

What actually resolved the issue

Once I focused on layers, the fix became clear.

Step 1: Reviewed solution layers

I checked the affected tables and choices and found:

  • Existing unmanaged layers
  • Older label customizations sitting above my managed solution

Step 2: Cleaned up unmanaged customizations

Where possible, I:

  • Removed unmanaged changes
  • Or recreated them properly inside the managed solution

Step 3: Re-exported the solution

I made sure:

  • All label changes were saved
  • The solution clearly contained the updated metadata
  • No half-applied patches existed

Another approach that also works

In a few cases, I’ve also fixed similar issues by:

  • Creating a new patch solution
  • Including only the affected tables or choices
  • Importing that patch into the target environment

This forces Dataverse to reapply the label metadata cleanly and avoids touching unrelated components.

What actually fixed it in my case (managed properties behavior)

In my case, there were no unmanaged layers in the target environment, which made this issue even more confusing.

What finally fixed the issue was this:

I went to the managed properties of the affected fields in the development environment and disabled “Allow Customization”, then exported the solution as managed and imported it into the target environment.

After that import, the field names and choice labels reflected correctly.

Leave a Reply

Your email address will not be published. Required fields are marked *