Exchange Move Mailbox Experiences Part 2

In part 1 we saw that a corrupted rule made the Mailbox Move fail.

I wanted to know if I had really a corrupted mailbox or maybe even corruption in the store or another problem.

So in this part I will describe how to break down the Mailbox Move Log.

First go to the Failed Move Request and select Properties:



Then click Log –> View and scroll down to Error context which is like a stack, the item on top happened last:

Error context: --------
Operation: IDestinationFolder.SetRules
OperationSide: Target
Primary (8863bfc2-31ae-401a-adc0-7e50848550d5)
Rules: [Rule: Condition: none; Actions: [RuleAction: OOFREPLY TemplateEID:[len=70, data=0000000045448BC1126FA6489BE68A0E4245C36207007A08E4E185746A45BF5C6EF2A17E8D550000157B516600007A08E4E185746A45BF5C6EF2A17E8D550000157B53DF0000], TemplateGuid:1971f7f4-7079-4a7e-a3af-4ff767024df6, Flags:0]; Name ''; Provider: 'MSFT:TDX OOF Rules'; ProviderData: ; ExecutionSequence: 50; Level: 0; StateFlags: 13; UserFlags: 2; IsExtended: False]
Folder: '/Top of Information Store/Backup Mail John Doe/Postvak IN', entryId [len=46, data=0000000045448BC1126FA6489BE68A0E4245C36201007A08E4E185746A45BF5C6EF2A17E8D55000018187DB30000], parentId [len=46, data=0000000045448BC1126FA6489BE68A0E4245C36201007A08E4E185746A45BF5C6EF2A17E8D55000018187DA70000]
22-9-2011 17:06:01 [vCAS001] Relinquishing job.

The lines below indicate in which folder it happened (Backup Mail John Doe/Postvak IN). This folder seems to be a backup of another mailbox that was placed in this folder:


That’s why this folder also has an Inbox (Postvak IN in Dutch) which may have Rules and Out Of Office objects.

Now we open this Folder in Outlook Spy by selecting it and pressing the IMAPIFolder button. Then select the PR_RULES_TABLE tab:


In my case there was only one row and the PR_RULE_PROVIDER property indicates that it’s an Out Of Office rule (value MSFT:TDX OOF Rules)

Before we go it’s important to understand some details of the internal implementation of Out Of Office Messages.

So let’s first look at a Mailbox with a working and correct Out Of Office notice.

I created a test mailbox and set an OOF message (not that we just need to set the text we don’t need to set the account as currently Out of Office):


Then I opened this OOF rule with OutlookSpy via Inbox –> IMAPIFolder –> PR_RULES_TABLE tab.

Doubleclick PR_RULE_ACTIONS, copy the value of lpAction.lpEntryId to the clipboard and click Close:


Now select the OpenEntry tab and click Enter Entry ID Manually:

Paste the value of lpAction.lpEntryId from the clipboard and press Ok:


Press OK on the next screen:


Now we see the actual Out Of Office Text:


So the Out Of Office Text is actually stored inside a hidden message. Now that we know this let’s proceed with the erroneous Out Of Office rule.

Go back to mailbox with the error and open the folder that contains the corrupted OOF rule (Backup Mail John Doe/Postvak IN).

Goto the PR_RULES_TAB (via IMAPIFolder), select the rule and  inspect PR_RULE_ACTIONS.

Copy again the value of lpAction.lpEntryID to the clipboard and click Close:


As before, click the OpenEntry Tab followed by Enter Entry ID Manually. Now paste the value of lpAction.lpEntryID and press Ok:


Click OK on the next Dialog:


In my case I got the following error:


And this is the explanation of the Move Mailbox Error: The Out Of Office Message (the one that contains the actual text) no longer exists.

And the Entry ID that we pasted is equal to the one from the Move Mailbox log file (after data=):

ulVersion: 1
cActions : 1
lpAction : 0x00FE0A18
  acttype: OP_OOF_REPLY
  ulActionFlavor: 0x00000000
  lpRes: NULL
  lpPropTagArray: NULL
  ulFlags: 0x00000000
  dwAlignPad: 0x087A0001
    cbEntryId: 0x00000046
    lpEntryId: 0000000045448BC1126FA6489BE68A0E4245C36207007A08E4E185746A45BF5C6EF2A17E8D550000157B516600007A08E4E185746A45BF5C6EF2A17E8D550000157B53DF0000
    guidReplyTemplate: {1971F7F4-7079-4A7E-A3AF-4FF767024DF6}

[RuleAction: OOFREPLY TemplateEID:[len=70, data=0000000045448BC1126FA6489BE68A0E4245C36207007A08E4E185746A45BF5C6EF2A17E8D550000157B516600007A08E4E185746A45BF5C6EF2A17E8D550000157B53DF0000]