Exchange 2016 CU 19 update failed at Mailbox role: Mailbox service

jennylee 86 Reputation points
2021-03-06T14:58:43.2+00:00

R:unning CU 19 update on exchange 2016 on server 2012r2 Failed on step 13 of 17 The following error was generated when "$error.Clear(); if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated) { $arbUsers = @(get-user -Filter {lastname -eq "MSExchApproval 1f05a927-3be2-4fb9-aa03-b59fe3b56f4c"} -IgnoreDefaultScope -ResultSize 1); if ($arbUsers.Length -ne 0) { $mbxname = $arbUsers[0].name; $mbxs = @( get-mailbox -arbitration -Filter {name -eq $mbxname} -IgnoreDefaultScope -resultSize 1 ); if ( $mbxs.length -eq 0) { $dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController); if ($dbs.Length -ne 0) { enable-mailbox -Arbitration -identity $arbUsers[0] -database $dbs[0].Identity; } } } } " was run: "Microsoft.Exchange.Data.DataValidationException: ExternalEmailAddress is mandatory on MailUser. at Microsoft.Exchange.Data.Directory.ADDataSession.Save(ADObject instanceToSave, IEnumerable1 properties, Boolean bypassValidation) at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Save(ADRecipient instanceToSave, String callerFilePath, Int32 callerFileLine, String memberName) at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Microsoft.Exchange.Data.IConfigDataProvider.Save(IConfigurable instance, String callerFilePath, Int32 callerFileLine, String memberName) at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.PrepareRecipientObject(ADUser& user) at Microsoft.Exchange.Management.RecipientTasks.EnableRecipientObjectTask2.PrepareDataObject() at Microsoft.Exchange.Configuration.Tasks.SetTaskBase1.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.RecipientObjectActionTask2.InternalValidate() at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1() at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

Microsoft Exchange Hybrid Management
Microsoft Exchange Hybrid Management
Microsoft Exchange: Microsoft messaging and collaboration software.Hybrid Management: Organizing, handling, directing or controlling hybrid deployments.
1,886 questions
{count} votes

Accepted answer
  1. Sam Bruins 86 Reputation points
    2021-03-06T23:22:38.477+00:00

    Can you check MSExchApproval 1f05a927-3be2-4fb9-aa03-b59fe3b56f4c has a mailbox database assigned check in user attributes or via adding adsiedit


3 additional answers

Sort by: Most helpful
  1. Ashok M 6,506 Reputation points
    2021-03-07T12:22:05.963+00:00

    Hi @jennylee ,

    Did you run setup /prepareAD before running the setup? Looks like issue with the arbitration mailbox.

    Run the command in Exchange management shell,

    Get-Mailbox –Arbitration | Select Name,Database

    there would be a warning for one of the system mailboxes, if yes, run the below command to set the database to that system mailbox

    Set-Mailbox "System Mailbox xxxxx" –Database "DB Name" –Arbitration

    If the above suggestion helps, please click on "Accept Answer" and upvote it.


  2. jennylee 86 Reputation points
    2021-03-07T21:59:41.297+00:00
    Mailbox role: Mailbox service                             FAILED
    

    The following error was generated when "$error.Clear();
    If ($RoleProductPlatform -eq "amd64") {
    try { # Need to configure the ETL
    traces before the fast service is installed. This will ensure that when the
    service comes up # it will have the necessary trace session setting available
    to read from the registry $fastPerfEtlTraceFolderPath = Join-Path -Path
    $RoleBinPath -ChildPath "\Search\Ceres\Diagnostics\ETLTraces"
    $fastDiagnosticTracingRegKeyPath = 'HKLM:\SOFTWARE\Microsoft\Office
    Server\16.0\Search\Diagnostics\Tracing' if(-not(Test-Path -Path
    $fastPerfEtlTraceFolderPath)) { $null = New-Item $fastPerfEtlTraceFolderPath
    -Type 'Directory' -Force }
    if (-not(Test-Path -Path $fastDiagnosticTracingRegKeyPath)) {
    $null = New-Item -Path $fastDiagnosticTracingRegKeyPath -Force }
    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'TracingPath' -PropertyType 'string' -Value $fastPerfEtlTraceFolderPath -Force $null = New-ItemProperty -Path
    $fastDiagnosticTracingRegKeyPath -Name 'TracingFileName' -PropertyType 'string'
    -Value 'DocumentProcessingTrace' -Force $null = New-ItemProperty -Path
    $fastDiagnosticTracingRegKeyPath -Name 'DocumentParserSuccessLogMessage'
    -PropertyType 'Dword' -Value 1 -Force $null = New-ItemProperty -Path
    $fastDiagnosticTracingRegKeyPath -Name 'DocumentParserLoggingNoInitialisation'
    -PropertyType 'Dword' -Value 1 -Force # Max trace folder size 50 * 100 =
    5GB $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name
    'MaxTraceFileSize' -PropertyType 'Dword' -Value 50 -Force $null =
    New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name
    'MaxTraceFileCount' -PropertyType 'Dword' -Value 100 -Force
    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name
    'UseGeneralSwitch' -PropertyType 'Dword' -Value 1 -Force
    $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'GeneralSwitch'
    -PropertyType 'Dword' -Value 0 -Force } catch { # ETl tracing is not
    critical. Info only log Write-ExchangeSetupLog -Info ("An exception ocurred
    while trying to Configure the FAST ETL traces. Exception: " +
    $_.Exception.Message); } try { $fastFusionRegKeyPath =
    'HKLM:\SOFTWARE\Microsoft\Office Server\16.0\Search\FlightControl' if
    (Test-Path -Path $fastFusionRegKeyPath) { Remove-ItemProperty -Path
    $fastFusionRegKeyPath -Name 'fusion_new_enabled' -Force -ErrorAction
    SilentlyContinue Remove-ItemProperty -Path $fastFusionRegKeyPath -Name
    'fusion_old_enabled' -Force -ErrorAction SilentlyContinue
    Remove-ItemProperty -Path $fastFusionRegKeyPath -Name 'fusion_compare_outputs' -Force -ErrorAction SilentlyContinue } } catch { # Removing new fusion keys is not critical.
    Info only log Write-ExchangeSetupLog -Info ("An exception ocurred while trying
    to remove the fast new fusion reg keys. Exception: " + $.Exception.Message);
    } $fastInstallConfigPath = Join-Path -Path $RoleBinPath -ChildPath
    "Search\Ceres\Installer"; $command = Join-Path -Path $fastInstallConfigPath
    -ChildPath "InstallConfig.ps1"; $dataFolderPath = Join-Path -Path $RoleBinPath
    -ChildPath "Search\Ceres\HostController\Data"; # Remove previous
    SearchFoundation configuration &$command -action u -silent; try { if
    ([System.IO.Directory]::Exists($dataFolderPath)) {
    [System.IO.Directory]::Delete($dataFolderPath, $true); } } catch {
    $deleteErrorMsg = "Failure cleaning up SearchFoundation Data folder. - " +
    $dataFolderPath + " - " + $
    .Exception.Message;
    Write-ExchangeSetupLog -Error $deleteErrorMsg; }

    Re-add the SearchFoundation configuration

    Try { # the BasePort value MUST be kept in sync with
    dev\Search\src\OperatorSchema\SearchConfig.cs
    &$command -action i -baseport
    3800 -dataFolder $dataFolderPath -silent; } catch {
    $errorMsg = "Failure configuring SearchFoundation through installconfig.ps1 - " +
    $_.Exception.Message; Write-ExchangeSetupLog -Error $errorMsg;

    Clean up the failed configuration attempt.

    &$command -action u -silent; try { if ([System.IO.Directory]::Exists($dataFolderPath)) {
    [System.IO.Directory]::Delete($dataFolderPath, $true); } } catch {
    $deleteErrorMsg = "Failure cleaning up SearchFoundation Data folder. - " +
    $dataFolderPath + " - " + $_.Exception.Message;
    Write-ExchangeSetupLog -Error
    $deleteErrorMsg; } }

    Set the PowerShell Snap-in's public key tokens try { $PowerShellSnapinsPath =

    "HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\";
    $FastSnapinNames =
    @("EnginePSSnapin", "HostControllerPSSnapIn", "InteractionEnginePSSnapIn",
    "JunoPSSnapin", "SearchCorePSSnapIn");
    $officePublicKey = "71E9BCE111E9429C";
    $exchangePublicKey = "31bf3856ad364e35";
    foreach ($fastSnapinName in
    $FastSnapinNames) {
    $fastSnapinPath = $PowerShellSnapinsPath +
    $fastSnapinName; $assemblyNameProperty = Get-ItemProperty -Path
    $fastSnapinPath -Name "AssemblyName" -ErrorAction SilentlyContinue;
    If ($assemblyNameProperty -ne $null -and (-not
    [string]::IsNullOrEmpty($assemblyNameProperty.AssemblyName))) {
    $newAssemblyName = $assemblyNameProperty.AssemblyName -ireplace
    ($officePublicKey, $exchangePublicKey);
    Set-ItemProperty -Path $fastSnapinPath
    -Name "AssemblyName" -Value $newAssemblyName; } } } catch { # Info only
    Log Write-ExchangeSetupLog -Info ("An exception ocurred while configuring
    Search Foundation PowerShell Snapin. Exception: " + $_.Exception.Message);
    } } " was run: "System.Exception: Failure cleaning up SearchFoundation Data
    folder. - C:\Program Files\Microsoft\Exchange
    Server\V15\Bin\Search\Ceres\HostController\Data - Exception calling "Delete"
    with "2" argument(s): "Access to the path
    'Microsoft.ClientResourceView.FlowService.dll' is denied."
    At Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception,
    ErrorCategory errorCategory, Object target, String helpUrl)
    atMicrosoft.Exchange.Management.Deployment.WriteExchangeSetupLog.InternalProcessR
    cord() at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
    at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String
    funcName, Action func, Boolean terminatePipelineIfFailed)".

    The Exchange Server setup operation didn't complete. More details can be found
    in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder.


  3. jennylee 86 Reputation points
    2021-03-08T13:16:14.353+00:00

    I was in the process of running it again before I went to bed, I stopped backup services, antivirus was already stopped. Here are the errors: I can't put in reply it won't fit: Mailbox role: Mailbox service 100% FAILED
    Mailbox role: Mailbox service 100%
    FAILED
    The following error was generated when "$error.Clear();
    If (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated) {
    $arbUsers = @(get-user -Filter {lastname -eq "MSExchApproval
    1f05a927-3be2-4fb9-aa03-b59fe3b56f4c"} -IgnoreDefaultScope -ResultSize 1);
    If ($arbUsers.Length -ne 0) { $mbxname = $arbUsers[0].name;
    $mbxs = @( get-mailbox -arbitration -Filter {name -eq $mbxname} -IgnoreDefaultScope
    -resultSize 1 ); if ( $mbxs.length -eq 0) { $dbs = @(get-MailboxDatabase
    -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
    If ($dbs.Length -ne 0) { enable-mailbox -Arbitration -identity $arbUsers[0]
    -database $dbs[0].Identity; } } } } " was run: "Microsoft.Exchange.Data.DataValidationException: ExternalEmailAddress is mandatory on MailUser. At Microsoft.Exchange.Data.Directory.ADDataSession.Save(ADObject instanceToSave,
    IEnumerable1 properties, Boolean bypassValidation) at icrosoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Save(ADReci Pient instanceToSave, String callerFilePath, Int32 callerFileLine, String memberName) At Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Microsoft.E xchange.Data.IConfigDataProvider.Save(IConfigurable instance, String callerFilePath, Int32 callerFileLine, String memberName) at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.PrepareRecipientObjec t(ADUser& user) at Microsoft.Exchange.Management.RecipientTasks.EnableRecipientObjectTask2.Prepare
    DataObject() at Microsoft.Excha ge.Configuration.Tasks.SetTaskBase1.InternalValidate() At Microsoft.Exchange.Configuration.Tasks.RecipientObjectActionTask2.InternalValid
    ate() at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.InternalValidate()
    at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
    at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String
    funcName, Action func, Boolean terminatePipelineIfFailed)".