I’d like to share a summary of what I’ve found after working with Microsoft support and doing some investigation:
✅ Confirmed Behavior:
Some out-of-the-box relationships — such as Incident_Emails
, Lead_Emails
, and Opportunity_Emails
— are part of the Basic solution layer in Dataverse. These relationships are not exportable or customizable through solutions, even if you modify their cascade behavior in an unmanaged environment.
⚠️ Why This Happens:
-
Basic-layer relationships are created by the platform and intended to be modified only at runtime or manually.
-
They are marked as unmodified="1"
in customizations.xml
, even after UI-based changes.
-
Conversely, other relationships like Account_Emails
and Contact_Emails
belong to the System layer and do support exporting when modified.
Incident_Emails:

Account_Emails:

🔄 Workaround:
To deploy changes to Basic-layer relationships (e.g., changing CascadeAssign
to None
), you must:
-
Apply changes manually in each target environment, or
-
Use a C# or PowerShell script leveraging the Dataverse SDK to update relationship metadata via the API after deployment.
📎 Example of C# solution using ServiceClient
:
var retrieveRequest = new RetrieveRelationshipRequest { Name = "Incident_Emails" };
var updateRequest = new UpdateRelationshipRequest { Relationship = modifiedMetadata };
service.Execute(updateRequest);
This limitation is not documented explicitly in public Microsoft docs (yet), but it has been confirmed by Microsoft support and we’ve reproduced it across multiple environments.
I hope this helps others facing the same issue — happy to share the full script if anyone is interested.