0

We have a hybrid Exchange environment that I'm trying to patch up. We're currently running CU16, and I've tried upgrading to both CU18 and CU19 with the same errors.

During installation, it makes it to step 13 of 17: Mailbox role: Mailbox service then fails with the following error message: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox."

Error:
The following error was generated when "$error.Clear(); 
          if ($RoleIsDatacenter -ne $true -and $RoleIsDatacenterDedicated -ne $true)
          {
          if (Test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
          {
          $sysMbx = $null;
          $name = "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}";
          $dispName = "Microsoft Exchange";
          Write-ExchangeSetupLog -Info ("Retrieving mailboxes with Name=$name.");
          $mbxs = @(Get-Mailbox -Arbitration -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1 );
          if ($mbxs.Length -eq 0)
          {
          Write-ExchangeSetupLog -Info ("Retrieving mailbox databases on Server=$RoleFqdnOrName.");
          $dbs = @(Get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
          if ($dbs.Length -ne 0)
          {
          Write-ExchangeSetupLog -Info ("Retrieving users with Name=$name.");
          $arbUsers = @(Get-User -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
          if ($arbUsers.Length -ne 0)
          {
          Write-ExchangeSetupLog -Info ("Enabling mailbox $name.");
          $sysMbx = Enable-Mailbox -Arbitration -Identity $arbUsers[0] -DisplayName $dispName -database $dbs[0].Identity;
          }
          }
          }
          else
          {
          if ($mbxs[0].DisplayName -ne $dispName )
          {
          Write-ExchangeSetupLog -Info ("Setting DisplayName=$dispName.");
          Set-Mailbox -Arbitration -Identity $mbxs[0] -DisplayName $dispName -Force;
          }
          $sysMbx = $mbxs[0];
          }

          # Set the Organization Capabilities needed for this mailbox
          if ($sysMbx -ne $null)
          {
          # We need 1 GB for uploading large OAB files to the organization mailbox
          Write-ExchangeSetupLog -Info ("Setting mailbox properties.");
          set-mailbox -Arbitration -identity $sysMbx -UMGrammar:$true -OABGen:$true -GMGen:$true -ClientExtensions:$true -MailRouting:$true -MessageTracking:$true -PstProvider:$true -MaxSendSize 1GB -Force;

          Write-ExchangeSetupLog -Info ("Configuring offline address book(s) for this mailbox");
          Get-OfflineAddressBook | where {$_.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -ge 0 -and $_.GeneratingMailbox -eq $null} | Set-OfflineAddressBook -GeneratingMailbox $sysMbx.Identity;
          }
          else
          {
          Write-ExchangeSetupLog -Info ("Cannot find arbitration mailbox with name=$name.");
          }
          }
          else
          {
          Write-ExchangeSetupLog -Info "Skipping creating E15 System Mailbox because of insufficient permission."
          }
          }
        " was run: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.
   at Microsoft.Exchange.Data.Directory.SystemConfiguration.TenantConfigurationCacheableItem`1.TryRunADOperation(ADOperation operation, Boolean throwExceptions)
   at Microsoft.Exchange.Data.Directory.SystemConfiguration.TenantConfigurationCacheableItem`1.Initialize(OrganizationId organizationId, CacheNotificationHandler cacheNotificationHandler, Object state)
   at Microsoft.Exchange.Data.Directory.SystemConfiguration.TenantConfigurationCache`1.InitializeAndAddPerTenantSettings(OrganizationId orgId, Boolean allowExceptions, TSettings& perTenantSettings, Object state)
   at Microsoft.Exchange.Data.Directory.SystemConfiguration.TenantConfigurationCache`1.TryGetValue(OrganizationId orgId, Boolean allowExceptions, TSettings& perTenantSettings, Boolean& hasExpired, Object state)
   at Microsoft.Exchange.Management.RecipientTasks.GetMailbox.ConvertDataObjectToPresentationObject(IConfigurable dataObject)
   at Microsoft.Exchange.Configuration.Tasks.GetRecipientObjectTask`2.WriteResult(IConfigurable dataObject)
   at Microsoft.Exchange.Configuration.Tasks.GetTaskBase`1.WriteResult[T](IEnumerable`1 dataObjects)
   at Microsoft.Exchange.Configuration.Tasks.GetTaskBase`1.InternalProcessRecord()
   at Microsoft.Exchange.Configuration.Tasks.GetObjectWithIdentityTaskBase`2.InternalProcessRecord()
   at Microsoft.Exchange.Configuration.Tasks.GetRecipientObjectTask`2.InternalProcessRecord()
   at Microsoft.Exchange.Management.RecipientTasks.GetRecipientWithAddressListBase`2.InternalProcessRecord()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".
Greg Askew
  • 35,880
  • 5
  • 54
  • 82
emike09
  • 13
  • 4

2 Answers2

1

I have done some research, open ADSIEDIT.msc and connect to the Default naming context. Open the Users container and look for a valid user. Open the properties on the user and find the attribute with the name HomeMDB. Copy the entry in a notepad or any other text editor.

From the ADSIEDIT.msc connect again the Default naming context and find the user which is giving the problem and open the properties. After finding the attribute, delete the contents and replace them from what we copied.

Re-Run the setup and it should continue the installation and install the Mailbox Role.

For more details: Error Solved: "Exchange 2016 database is mandatory on usermailbox"

Joy Zhang
  • 1,057
  • 1
  • 5
  • 5
  • Thanks Joy. This fixed the error. We had old disabled systemmailbox accounts that were erroring the update out. These accounts had invalid e-mail addresses assigned to them in Active Directory. I simply deleted the accounts and re-ran the upgrade and it went though. – emike09 Mar 15 '21 at 20:35
  • Glad you have resolved this issue, you could mark the helpful reply as best answer if some people encounter the same issue, they could find the solution quickly:) – Joy Zhang Mar 16 '21 at 09:04
  • Interestingly, deleting those disabled systemmailbox accounts broke our hybrid Exchange environment. I restored them from the AD recycle bin and that got Exchange working again. Weird that the updates didn't like the account, but they're still required for Exchange to function properly. – emike09 Apr 13 '21 at 16:39
-1

There are some common fixes that user can check when facing issue to install CU Updates:

  1. First you should have a look at the setup logs, it will give you more details about the issue.

  2. Always run the setup.exe from an elevated cmdlet (as opposed to right click | run as admin)

  3. Use the healtchecker.ps1 script from Microsoft, it will help you to identify common issues.

  4. If you have performed any disk clean up in the past & removed windows updates? in this case, you need to reinstall the Exchange server again with recovery switch & then perform the upgrade. Also refer How to Repair A Failed Exchange 2016 CU Installation.

  5. Or If you have option to open MS case, then suggest you to first do this.