Would DualWrite have removed the ability to run a "Set-MailUser user -WindowsEmailAddress zzz@externaldomain.yyy" command in ExchangeOnline for a MailUser object that is synced from OnPrem? I understand that you typically cannot update synced objects from the Cloud, but this command used to work. And the values are correct OnPrem, but not in the Cloud.
For example, I have a MailUser object on-prem (multiple, actually) which is synced to ExchangeOnline. The ExternalEmailAddress is correct (points to an external domain). On-prem, the PrimarySmtpAddress and WindowsEmailAddress match the ExternalEmailAddress.
Previously, in ExchangeOnline, the PrimarySmtpAddress and WindowsEmailAddress would match ExternalEmailAddress when first created. Then something would change and on a subsequent AD Connect Sync, they would no longer match. But, I could use the Set-MailUser command in ExchangeOnline to set WindowsEmailAddress to be that external address, and everything would start working again.
Now, if I try to run a Set-MailUser command in the cloud, it fails with this message:
An Azure Active Directory call was made to keep object in sync between Azure Active Directory and Exchange Online.
However, it failed. Detailed error message:
Unable to update the specified properties for on-premises mastered Directory Sync objects or objects currently
undergoing migration.
I'm not sure when DualWrite was enabled in my tenant, but this issue started very recently. Any thoughts?
(This is being done, by the way, to enable Google GSuite Calendar Availability sharing with the external domain. When the WindowsEmailAddress doesn't match the ExternalEmailAddress, or maybe PrimarySmtpAddress, availability lookups fail.)