When migrating mailboxes between Exchange versions using the Exchange Admin Center you may receive the error:
Nullable object must have a value.
This error will appear when you navigate to the Recipient > Migration tab and click View Details on a migration batch. In the screenshot below we are examining a migration batch named “Test Migration to Exchange 2016” which contains two users. We are attempting to move these two users from Exchange 2013 to Exchange 2016.

From this screenshot, you will notice the Status column reports both users as successfully migrated. However, the Data Migrated and Migration Rate attributes in the right-hand pane are missing values. For an executed migration batch these attributes should contain metrics.
Similarly, if you click Download the report for this user, you will receive the same error. For a completed migration this report would normally contain between several dozen and a couple of hundred line items.

If you review this same move request using PowerShell you will be able to successfully pull this report.
C:\> Get-MoveRequest -Identity "River Song" | Get-MoveRequestStatistics -IncludeReport | Format-List
Report : 6/16/2018 3:28:30 PM [EX16-02] '' created move request.
<...edited for brevity...>
3:28:36 The Microsoft Exchange Mailbox Replication service 'EX16-01.SKARO.LOCAL' (15.1.1466.8 caps:3FFFFF) is examining the request.
3:28:37 Connected to target mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)', database 'DB03', Mailbox server 'EX16-01.SKARO.LOCAL'.
3:28:37 Connected to source mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)', database 'DB01', Mailbox server 'EX13-01.SKARO.LOCAL'.
3:28:38 Request processing started.
3:28:38 Cleared sync state for request 70bffbc1-4773-48eb-bd35-eacb08bf3a64 due to 'CleanupOrphanedMailbox'.
3:28:38 Mailbox signature will not be preserved for mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)'.
3:28:45 Stage: CreatingFolderHierarchy. Percent complete: 10.
3:28:46 Initializing folder hierarchy from mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)': 86 folders total.
3:28:46 Folder creation progress: 0 folders created in mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)'.
3:28:51 Folder hierarchy initialized for mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)': 85 folders created.
3:28:51 Stage: CreatingFolderHierarchy. Percent complete: 10.
3:28:55 Stage: CreatingInitialSyncCheckpoint. Percent complete: 15.
3:28:55 Initial sync checkpoint progress: 0/86 folders processed.
3:28:56 Initial sync checkpoint completed: 80 folders processed.
3:28:56 Stage: LoadingMessages. Percent complete: 20.
3:29:18 Copying messages is complete. Copying rules and security descriptors.
3:29:22 Initial seeding completed, 113 items copied, total size 502.5 KB (514,562 bytes).
3:29:28 Stage: IncrementalSync. Percent complete: 95.
3:29:28 Final sync has started.
3:29:28 Folder hierarchy changes reported in source '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)'
3:29:29 Total content changes applied to mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)'
3:29:29 Incremental Sync '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)' completed
3:29:29 Stage: FinalIncrementalSync. Percent complete: 95.
3:29:29 Copying per user read/unread data.
3:29:29 Per user read/unread data copied successfully.
3:29:29 Mailbox store finalization is complete.
3:29:29 SessionStatistics updated.
3:29:29 Verifying mailbox contents...
3:29:30 Mailbox contents verification complete: 8 folders have been examined, 72 empty folders have been skipped, 113 items, 502.5 KB.
3:29:30 Waiting for mailbox changes to replicate.
3:30:06 Mailbox 'River Song' was loaded from domain controller 'DC3.SKARO.LOCAL'.
3:30:11 PrimarySize: 518031, ArchiveSize: 0, DumpsterSize: 0, ArchiveDumpsterSize: 0
3:30:11 PrimaryQuota: 2469606400, ArchiveQuota: 107374182400, DumpsterQuota: 32212254720, ArchiveDumpsterQuota: 32212254720
3:30:11 Mailbox was updated using domain controller 'DC3.SKARO.LOCAL'.
3:30:17 Mailbox 'River Song' was updated on domain controller 'DC3.SKARO.LOCAL'.
3:30:17 Stage: FinalIncrementalSync. Percent complete: 95.
3:30:18 Move has completed and final cleanup has started.
3:30:18 The Directory Cache on the source mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)' was successfully populated after the move.
3:30:19 Source mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)' was successfully cleaned up after the move.
3:30:19 Target mailbox '70bffbc1-4773-48eb-bd35-eacb08bf3a64 (Primary)' was successfully reset after the move.
3:30:19 Waiting for mailbox changes to replicate.
3:31:30 Request is complete.
The problem is purely cosmetic and is quite easy to remedy.
Fixing nullable object must have a value
This issue occurs when the privileged account used to monitor the migration has a mailbox that is still hosted on an older version of Exchange. When that privileged account logs into the Exchange Admin Center (“EAC”), Exchange will proxy that privileged account back to the EAC version that matches their mailbox. In our example, the privileged account’s mailbox was still hosted on Exchange 2013. This means that our privileged account is receiving the 2013 version of the EAC and not 2016. This can result in strange errors like the one described in this article.
There are two remedies to fix this error. The first is to move your privileged mailbox to Exchange 2016 and this is the recommended practice. However, if you can’t move your mailbox right away you can force which EAC version you want to use. To do this we can specify the Exchange client version in the EAC URL.
For example, our typical EAC URL is the following:
https://webmail.exchangeservergeek.com/ecp/

To force a specific client version–in our example Exchange 2016–we append ExchClientVer=15.1 to the end of our URL:
https://webmail.exchangeservergeek.com/ecp/?ExchClientVer=15.1

Now when we check our migration the nullable object error is gone and we have metrics for Data Migrated and Migration Rate.

In addition, Download the report for this user also provides us with the same output we saw in PowerShell.


Have you seen this issue before? What did you do to fix it? Drop a comment below or join the conversation on Twitter @SuperTekBoy.
First of all, thanks for the explanation. solved my issue straight away
2nd of all, I completely approve of your use of Dr. Who characters in your explanations.