Skip to content

EXOAcceptedDomain: False Drift Detection on Suppressed Errors #6771

@SNikalaichyk

Description

@SNikalaichyk

Description of the issue

The EXOAcceptedDomain resource reports false configuration drift and executes unnecessary Set operations due to error suppression in Test.

Evidence

LCM execution log:

TimeStamp MessageBody
2025-12-16 20:22:55.184 [LCM-M365DSC]: LCM: [ Start Resource ] [[EXOAcceptedDomain]contoso.com]
2025-12-16 20:22:55.184 [LCM-M365DSC]: LCM: [ Start Test ] [[EXOAcceptedDomain]contoso.com]
2025-12-16 20:22:55.184 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Testing configuration of Accepted Domain for contoso.com
2025-12-16 20:22:55.184 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Getting configuration of Accepted Domain for contoso.com
2025-12-16 20:22:55.184 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Getting all Accepted Domain
2025-12-16 20:23:58.789 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] AcceptedDomain configuration for {contoso.com} does not exist.
2025-12-16 20:23:58.789 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Current Values: ApplicationId=*** CertificateThumbprint=*** DomainType=InternalRelay Ensure=Absent Identity=contoso.com MatchSubDomains=False OutboundOnly=False TenantId=*** Verbose=True
2025-12-16 20:23:58.789 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Target Values: ApplicationId=*** CertificateThumbprint=*** DomainType=InternalRelay Ensure=Present Identity=contoso.com MatchSubDomains=False OutboundOnly=False TenantId=*** Verbose=True
2025-12-16 20:23:58.789 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned False
2025-12-16 20:23:58.789 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 63.9640 seconds.
2025-12-16 20:23:58.789 [LCM-M365DSC]: LCM: [ Start Set ] [[EXOAcceptedDomain]contoso.com]
2025-12-16 20:23:58.790 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Setting configuration of Accepted Domain for contoso.com
2025-12-16 20:23:58.790 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Setting AcceptedDomain for {contoso.com} with values: DomainType=InternalRelay Identity=contoso.com MatchSubDomains=False OutboundOnly=False
2025-12-16 20:25:02.192 [LCM-M365DSC]: LCM: [ End Set ] [[EXOAcceptedDomain]contoso.com] in 63.2310 seconds.

Drift event payload:

<M365DSCEvent> <ConfigurationDrift Source="MSFT_EXOAcceptedDomain" TenantId="contoso.onmicrosoft.com" LCMState="ConsistencyCheck"> <ParametersNotInDesiredState> <Param Name="Ensure"> <CurrentValue>Absent</CurrentValue> <DesiredValue>Present</DesiredValue> </Param> </ParametersNotInDesiredState> </ConfigurationDrift> <DesiredValues> <Param Name ="Ensure">Present</Param> <Param Name ="Identity">contoso.com</Param> <!-- Redacted --> </DesiredValues> <CurrentValues> <Param Name ="Ensure">Absent</Param> <Param Name ="Identity">contoso.com</Param> <!-- Redacted --> </CurrentValues> </M365DSCEvent>

Analysis

Successful consistency checks complete in <1 second, but failed executions take >60 seconds, indicating a timeout. The error is suppressed, causing the resource to incorrectly proceed to Set. When Test encounters failures, Set must not be executed. The resource should handle errors properly and throw a non-terminating error instead of reporting drift.

We have dozens of EXOAcceptedDomain resource instances that are executed in sequence. This issue typically occurs to a random instance, which can also indicate that throttling is involved. We suggest looking into implementing an exponential backoff mechanism.

TimeStamp MessageBody
2025-12-16 12:20:44.246 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned True
2025-12-16 12:20:44.246 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 0.2810 seconds.
2025-12-16 13:15:57.270 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned True
2025-12-16 13:15:57.270 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 0.2660 seconds.
2025-12-16 14:20:57.761 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned True
2025-12-16 14:20:57.761 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 0.2810 seconds.
2025-12-16 16:21:04.201 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned True
2025-12-16 16:21:04.201 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 0.3270 seconds.
2025-12-16 18:20:42.999 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned True
2025-12-16 18:20:42.999 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 0.2970 seconds.
2025-12-16 20:23:58.789 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned False
2025-12-16 20:23:58.789 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 63.9640 seconds.
2025-12-16 22:20:48.929 [LCM-M365DSC]: [[EXOAcceptedDomain]contoso.com] Test-TargetResource returned True
2025-12-16 22:20:48.929 [LCM-M365DSC]: LCM: [ End Test ] [[EXOAcceptedDomain]contoso.com] in 0.2980 seconds.

Root Cause

The culprit seems to be error suppression in this call:

$AcceptedDomain = Get-AcceptedDomain -Identity $Identity -ErrorAction SilentlyContinue if ($null -eq $AcceptedDomain) { Write-Verbose -Message "AcceptedDomain configuration for {$($Identity)} does not exist." return $nullReturn }

Permalink

Microsoft 365 DSC Version

1.25.1203.2

Which workloads are affected

Exchange Online

The DSC configuration

Verbose logs showing the problem

Environment Information + PowerShell Version

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions