Installing Exchange 2010 Service Pack 1 Fails At Mailbox Role: Database is mandatory on UserMailbox.

In a recent inci­dent, an Exchange serv­er had a com­plete vol­ume fail­ure dur­ing test­ing. Exchange 2010 was rein­stalled but when installing Ser­vice Pack 1, it failed upgrad­ing the Mail­box Role. Upon review­ing the log, I found the fol­low­ing line:

Database is mandatory on UserMailbox. Property Name: Database

The error does­n’t explain the prob­lem very well but it is basi­cal­ly say­ing that there is a User­Mail­box with­out a data­base, which should nev­er hap­pen. The fail­ure of the vol­ume and sub­se­quent rein­stall of 2010 left the arbi­tra­tion mail­box­es (and one or two user mail­box­es) orphaned. Most of the sug­ges­tions to resolve this prob­lem list doing things like delet­ing the sys­tem mail­box­es and run­ning “ /PrepareAD”. After look­ing around, I was able to parse togeth­er a few oth­er options and find a fix.

First, do a search in AD for the Sys­tem mail­box­es and make sure they exist in AD. (If they do not exist, check out this blog.)The three mail­box­es are:

  • Dis­cov­ery - SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
  • Mes­sage Approval - SystemMailbox{1f05a927-xxxx-xxxx-xxxx-xxxxxxxxxxxx} (where x is a ran­dom num­ber)
  • Fed­er­at­ed E-mail - FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042

Next, check out the sta­tus of their mail­box­es:

Get-Mailbox –Arbitration

For this client, their Dis­cov­ery and Mes­sage Approval mail­box­es spat out error mes­sages:

WARNING: The object XXXXXXXX.XXXXX/Users/SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} 
has been corrupted, and it's in an inconsistent state. The following validation errors happened:
WARNING: Database is mandatory on UserMailbox.

The fix is a love­ly, one-line pow­er­shell. It won’t do any­thing with­out prompt­ing you first. To ver­i­fy it fix­es the issue after you run it, take the first half of the com­mand (get-mail­box -arbi­tra­tion) and run that again to con­firm they are online and okay.

Get-Mailbox -Arbitration | Set-Mailbox -Arbitration –Database "Mailbox Database XXX"

Hope­ful­ly this saves some­body from caus­ing a big­ger mess than nec­es­sary. After run­ning this, I was able to install Ser­vice Pack 1 just fine. YMMV.

Edit: I found the DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852} was orphaned as well. To fix this mail­box, I just ran the fol­low­ing PoSH.

Get-Mailbox -Identity "DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852}" | Set-Mailbox –Database "Mailbox Database XXX"