Symptoms

Hosted Exchange provisioning tasks fail with the following error:

Task ID 27499525
Queue name      DomainService00161015
Task name       Provide Exchange hosting for organization (ds_id=161015)
Task description        Provide Exchange hosting for organization S001120121 DomainService = 161015, SubscriptionId = 1120121
Belongs to groups       provide subscription 1120121
Subscription ID 1120121
Queue status    Failed
Start not earlier than  Aug-07-2015 09:25
Method name     addDomainServiceHandler on OBJREF:Exchange:0:getMBXService:731
Last execution output:
Provisioning request failed. Call of method "SW Managed Exchange::CreateGlobalAddressList" failed.
Type: Parallels.Wpe.Utils.WpeProcedureException.

Inner exception(s):

-------------------

Exception calling "Execute" with "3" argument(s): "An Active Directory Constraint Violation error occurred on DC01.provider.local. Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)
"

Error position:
At C:\Program Files\Parallels\Windows Provisioning Engine\Providers\Common\ProviderUtils\ProviderUtils.psm1:53 char:26
+ [void]$Context.Execute <<<< ($Provider, $Method, $exec_data)

Type: Parallels.Wpe.PowerShell.PowerShellException.

-------------------

Exception calling "Execute" with "3" argument(s): "An Active Directory Constraint Violation error occurred on DC01.provider.local. Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)
"
Type: System.Management.Automation.MethodInvocationException.

-------------------

An Active Directory Constraint Violation error occurred on DC01.provider.local. 
Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)

Type: System.Management.Automation.RemoteException.

Error from WPE server
-2146233087 (0x80131501)
-- Error: An Active Directory Constraint Violation error occurred on DC01.provider.local. Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
        0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)
(System.Management.Automation.RemoteException)
   at Parallels.ExchangeUtils.PowerShell2.PSCommand2.checkErrors(PSDataCollection`1 error)
   at Parallels.ExchangeUtils.PowerShell2.PSCommand2.ExecutePipeline(List`1 cmdlets)
   at Parallels.ExchangeUtils.PowerShell2.ExecCmdLetAction2.RunCommand(PSCommand2 cmd, PrimitiveTransactionArgs args)
   at Parallels.ExchangeUtils.PowerShell2.ExecCmdLetAction2.Process(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransactionAction.PrepareToCommitTransaction(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransactionAction.Execute(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransaction.ExecuteInternal(PrimitiveTransactionAction action)
   at SWsoft.PEM.Providers.Exchange2010.GlobalAddressList_CreateAction.Process(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransactionAction.PrepareToCommitTransaction(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransactionAction.Execute(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransaction.ExecuteInternal(PrimitiveTransactionAction action)
   at SWsoft.PEM.Providers.Exchange2010.AddressListsAPI.CreateGlobalAddressList(IDictionary`2 args)
   at Parallels.Wpe.Proxies.Proxy_Exchange2010ProviderEx.Execute(String ns, String proc, XmlNode pXML)
   at Parallels.Wpe.Engine.ProcedureBase.Execute(Context context)
   at SWsoft.PEM.Transaction.PrimitiveTransactionAction.PrepareToCommitTransaction(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransactionAction.Execute(PrimitiveTransactionArgs args)
   at SWsoft.PEM.Transaction.PrimitiveTransaction.ExecuteInternal(PrimitiveTransactionAction action)
   at Parallels.Wpe.Engine.Context.Execute(ProcedureBase procedure)

Cause

There is a corrupted GAL on Active Directory.

Resolution

The issue is Microsoft-native and not related to Odin Service Automation. It is recommended to contact Microsoft support team.

However, the following resolution can be helpful in some cases:

  1. Issue the following Powershell script on the Active Directory server in question:

    $ad = [ADSI]"LDAP://rootDSE";
    $domain = $ad.rootDomainNamingContext;
    $obj = New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=Microsoft Exchange,CN=Services,CN=Configuration,$domain"); 
    
    $count = 0;
    $Gals1= $obj.GlobalAddressList;
    foreach($g in $Gals1)
    {
       $g= $g.ToString().ToLower(); 
       if($g.Contains("cn=deleted objects"))
       {
          Write-Host $g;
          $count= $count +1;  
       }
    }
    
    Write-Host "$Count corrupted GAL entries found in property GlobalAddressList";
    
    $count = 0;
    $Gals2= $obj.GlobalAddressList2;
    foreach($g in $Gals2)
    {  
       $g= $g.ToString().ToLower();
       if($g.Contains("cn=deleted objects"))  
       {
          Write-Host $g;    
          $count= $count +1;  
       }
    }
    Write-Host "$Count corrupted GAL entries found in property GlobalAddressList2";
    

    the output will be like below:

    PS C:\> .\check.ps1
    cn=test.com gal\0adel:1b6f6184-3e84-44a9-8905-54dd55a7407a,cn=deleted objects,cn=configuration,dc=provider,dc=local
    1 corrupted GAL entries found in property GlobalAddressList
    0 corrupted GAL entries found in property GlobalAddressList2
    PS C:\>
    
  2. Remove corrupted GALs from script output in : ADSI edit utility > Configuration > Services > CN=Microsoft Exchange > Properties > GlobalAddressList

    If there will be corrupted GALs in GlobalAddressList2 - remove them as well.

  3. Re-run the task

Internal content