Poison Mailbox

What is Poison Mailbox & Quarantine Mailbox in Exchange?

In Exchange 2013 and 2016 a Poison mailbox is caused if a thread associated with that mailbox crashes, or more than five threads on a mailbox process have stalled. On an Exchange Server, the mailboxes which are holding these type of messages are called poisoned mailboxes and the Exchange information store will isolate these kinds of mailboxes and can cause the store to fail or prohibit access to all the mailboxes hosted by the Exchange Server. These type of mailboxes are also called Quarantine mailboxes or Flagged Mailboxes.  Poison mailboxes cannot be accessed till that time it is in quarantine or isolation which by default is usually 6 hours.

How to Check Quarantine Mailbox?

Administrators can check for the quarantine mailboxes by running below commands:
Get-Mailbox | Get-MailboxStatistics | Where {$_.IsQuarantined –eq $True}
After finding a mailbox quarantine or poisoned, you could go through below resolution section for fixing the mailbox poison issue.

Solution

Mailboxes are quarantined when they affect the availability of the mailbox database. Typically a software fix from Microsoft is required before releasing a mailbox from quarantine. If a fix isn’t deployed before releasing the mailbox, the quarantine on the mailbox will be re-enabled if the condition recurs. The default quarantine duration is 24 hours.

In Exchange 2013 and 2016 it is quite easy to handle quarantine mailboxes. You don’t have to search for registry and no database dismount and mount required.

You can simply remove a mailbox from Quarantine by running below Powershell command:-

Disable-MailboxQuarantine “Test1”

In Exchange 2016 you can quarantine a mailbox manually as well. You need to run below Powershell Command.

Enable-MailboxQuarantine “Test1”

Fix a Poison Mailbox Exchange 2013/16 using cmdlet

If you find that mailbox is repeatedly sending the crash report again and again, and the above-mentioned solution is not working, then you must have to repair those corrupted mailboxes.

1. To detect and repair folder view of the mailbox
New-MailboxRepairRequest -Mailbox abc@xxxx.com -CorruptionType FolderView

 2. Detect Provisioned Folder and Search Folder Corruption
New-MailboxRepairRequest -Mailbox abc -CorruptionType ProvisionedFolder,SearchFolder -DetectOnly

 3. Fix Aggregate Counts for all mailboxes in mailbox database MBX- DB09

New-MailboxRepairRequest -Database MBX-DB09 -CorruptionType AggregateCounts

4.  Repair all type of corruption for a mailbox and archive

New-MailboxRepairRequest -Mailbox abc -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview -Archive

5.  To fix all types of corruption in a mailbox database

New-MailboxRepairRequest -Database $Mailbox.Database1 -StoreMailbox $Mailbox.Mailbox1Guid -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview

Description of parameters used in above cmdlet:

  • Corruption Type: Specify the type of corruption that a user wants to detect and fix.
  • Database: Specify the database on which command is to be executed.
  • Mailbox: Specify the mailbox on which command is to be executed.
  • Archive: Detect the corruption and fix archive mailbox of the specified mailbox.
  • DetectOnly: It will specify that a user wants to detect the errors, but not repair them
  • StoreMailbox: It specifies the mailbox GUID that a user wants to repair.

Conclusion

A Poison mailbox that is in quarantine state due to freezing of multiple threads used by MAPI clients to access mailboxes make mailboxes unavailable for the users for some time (by default 6 hours). Some simple solutions outlined in this blog post can quickly bring these mailboxes back online.

Leave a Reply