Exchange OnlineDeep dive

Exchange Online migration batch errors: IMAP, cutover, Google Workspace and cross-tenant

IMAP, cutover, Google Workspace and cross-tenant (MIGR, CTM and EXCH codes) migration errors in Exchange Online, with the usual cause and the first thing to check.

Migrations into Exchange Online that don't go through an Exchange hybrid deployment fail with their own set of messages: IMAP endpoints that time out, CSV files the wizard rejects, Outlook Anywhere errors in a cutover, Gmail sign-in failures and numbered codes from cross-tenant moves. This quick reference lists the documented messages with the meaning, the usual cause and the first thing to check.

Codes in this quick reference

  • The connection to the server imap.contoso.com could not be completed: IMAP server name doesn't resolveEAC (new IMAP endpoint or batch)
  • The connection to the server Servername.contoso.com timed out after 00:00:15: IMAP port not reachableEAC (new IMAP endpoint or batch)
  • Upload file can't be emptyEAC (CSV upload)
  • The CSV file contains more than 50,000 rows. Please divide the file into two or more filesEAC (CSV upload)
  • Column "<name>" is missing from the CSV file. The import process can't continue because this column is required.EAC (CSV upload)
  • Row X has the wrong number of columns. Expected number: 3. Actual number: Y.EAC (CSV upload)
  • The migration batch already exists.EAC / New-MigrationBatch
  • A recipient wasn't found for user@contoso.com on the target: no Exchange Online mailbox with that addressMigration user error report

+ 30 more codes in the tables below.

How this guide is organized: How to read these errors → IMAP migrations → Google Workspace and Gmail → Cutover migrations → Cross-tenant migrations → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these errors. 2. IMAP migrations. 3. Google Workspace and Gmail. 4. Cutover migrations. 5. Cross-tenant migrations (3 parts: Authorization, identity mapping and mailbox moves; Identity mapping messages; API responses). 6. How to verify a fix. Toolbox: New-MigrationBatch, New-MigrationEndpoint, Get-MigrationEndpoint, MIGR-002, CTM-100.1How to read these errors2IMAP migrations3Google Workspace and Gmail4Cutover migrations5Cross-tenant migrations6How to verify a fixAuthorization, identitymapping and mailbox m…Identity mappingmessagesAPI responsesTOOLBOXNew-MigrationBatchNew-MigrationEndpointGet-MigrationEndpointMIGR-002CTM-100How this guide is organized: How to read these errors → IMAP migrations → Google Workspace and Gmail → Cutover migrations → Cross-tenant migrations → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these errors. 2. IMAP migrations. 3. Google Workspace and Gmail. 4. Cutover migrations. 5. Cross-tenant migrations (3 parts: Authorization, identity mapping and mailbox moves; Identity mapping messages; API responses). 6. How to verify a fix. Toolbox: New-MigrationBatch, New-MigrationEndpoint, Get-MigrationEndpoint, MIGR-002, CTM-100.1How to read these errors2IMAP migrations3Google Workspace and Gmail4Cutover migrations5Cross-tenant migrationsAuthorization, identity mapping and mailboxmovesIdentity mapping messagesAPI responses6How to verify a fixTOOLBOXNew-MigrationBatchNew-MigrationEndpointGet-MigrationEndpointMIGR-002CTM-100
At a glance: how this guide is organized · 3 steps · 5 key settings and tools

How to read these errors#

Where a migration batch error comes from and where to read itDoes the message start with a code such as MIGR, CTM or EXCH? if Yes: Orchestrated cross-tenant migration (EXCH codes share their causes with a classic cross-tenant move); if No: When did the error appear? if At creation: Fix the endpoint settings or the CSV (The EAC wizard or New-MigrationEndpoint and New-MigrationBatch rejected them); if After it starts: Read the user's ErrorSummary (Get-MigrationUser -Status Failed, or the IMAP report linked in the email)Does the message start with acode such as MIGR, CTM orEXCH?NOTEOrchestratedcross-tenant migrationEXCH codes share theircauses with a classiccross-tenant moveYesWhen did the error appear?FIXFix the endpointsettings or the CSVThe EAC wizard orNew-MigrationEndpoint andNew-MigrationBatchrejected themAt creationFIXRead the user'sErrorSummaryGet-MigrationUser -StatusFailed, or the IMAP reportlinked in the emailAfter it startsNoWhere a migration batch error comes from and where to read itDoes the message start with a code such as MIGR, CTM or EXCH? if Yes: Orchestrated cross-tenant migration (EXCH codes share their causes with a classic cross-tenant move); if No: When did the error appear? if At creation: Fix the endpoint settings or the CSV (The EAC wizard or New-MigrationEndpoint and New-MigrationBatch rejected them); if After it starts: Read the user's ErrorSummary (Get-MigrationUser -Status Failed, or the IMAP report linked in the email)Does the message start with a code such asMIGR, CTM or EXCH?YesNOTEOrchestrated cross-tenant migrationEXCH codes share their causes with a classiccross-tenant moveNoWhen did the error appear?At creationFIXFix the endpoint settings or the CSVThe EAC wizard or New-MigrationEndpoint andNew-MigrationBatch rejected themAfter it startsFIXRead the user's ErrorSummaryGet-MigrationUser -Status Failed, or the IMAPreport linked in the email
Figure 1 · Decision tree Where a migration batch error comes from and where to read it. Answer the questions for IMAP, cutover, Google Workspace and cross-tenant migrations; hybrid moves from Exchange Server have their own reference.

IMAP, cutover and Google Workspace migrations all run as migration batches under Migration in the Exchange admin center (EAC). Errors appear at three points:

  • Creating the endpoint or batch: the EAC wizard (or New-MigrationEndpoint and New-MigrationBatch) rejects the settings or the CSV file.
  • Per user, after the batch starts: the user's details in the batch, the ErrorSummary in PowerShell, or (for IMAP) the report linked from the email E-mail migration batch "Batch name" has finished - with errors.
  • Orchestrated cross-tenant migrations: messages prefixed with a code such as MIGR-002, CTM-100 or EXCH-08.
PowerShell
Get-MigrationBatch | Format-List Identity, Status, *Count
Get-MigrationUser -BatchId "IMAP-Wave1" -Status Failed | Format-List Identity, ErrorSummary
Get-MigrationUserStatistics -Identity user@contoso.com -IncludeReport | Format-List Status, ErrorSummary, Report

Not repeated here: moves from Exchange Server in a hybrid deployment (MRSProxy and endpoint errors, StalledDueToTarget states, bad items, DataConsistencyScore, Synced with errors). They're in the mailbox move and migration errors reference and the hybrid migration batches guide. For connecting to PowerShell, see Exchange Online PowerShell connection errors.

IMAP migrations#

Creating the endpoint, CSV or batch#

CodeMeaningUsual causeFirst check
The connection to the server imap.contoso.com could not be completed.Exchange Online can't reach the IMAP server name you enteredThe FQDN is wrong or doesn't resolve in public DNS, including an old endpoint whose name stopped resolvingResolve the name from outside your network; recreate the endpoint with a public FQDN
The connection to the server Servername.contoso.com timed out after 00:00:15.No answer on the IMAP portA firewall blocks Microsoft datacenter addresses on 993 or 143, or the IMAP service is stoppedtelnet server 993 from outside; on Exchange, the Microsoft Exchange IMAP4 service
Upload file can't be emptyThe CSV has no dataThe wrong or a blank fileThe file you selected
The CSV file contains more than 50,000 rows.Over the CSV limitA CSV can hold up to 50,000 rows and 10 MBSplit the users into smaller batches
Column "<name>" is missing from the CSV file.A required header is missingIMAP needs EmailAddress, UserName and Password in the first rowThe header spelling
Row X has the wrong number of columns. Expected number: 3. Actual number: Y.A row is incompleteA missing value or an extra commaThat row of the file
The migration batch already exists.Batch names must be uniqueAn existing batch, or a deleted one that's still being removedUse a new name, or wait a few minutes after deleting

Per-user errors#

CodeMeaningUsual causeFirst check
A recipient wasn't found for user@contoso.com on the target. Create a recipient of the appropriate type for this migration on the target and try again.No Exchange Online mailbox has that addressThe mailbox doesn't exist yet, EmailAddress is wrong, or the row is a group or another non-mailbox objectCreate the mailbox, or set EmailAddress to one of its proxy addresses
We had trouble signing in to this account. Confirm that you're using the correct user name and password.The IMAP server rejected the sign-inWrong credentials in the CSV, IMAP turned off for the organization or user, or a super-user account without rightsThe CSV; IMAP access at both levels; on Exchange the account needs Full Access, Receive As on the database, or Domain Admins
This mailbox is full. Please free up some space so that email can be downloaded.The Exchange Online mailbox reached its quotaFrom Gmail, often duplicates caused by labels or a [Gmail] folder that wasn't excludedExclude [Gmail], remove labels, delete the duplicates and re-create the batch

Limits that look like failures: IMAP moves only mail folders (no contacts, calendar or tasks), up to 500,000 items per mailbox and messages up to 35 MB. IMAP from Exchange Server 2010 fails at the endpoint, because its IMAP service only offers TLS 1.0 and Exchange Online requires TLS 1.2; use cutover, hybrid or PST import instead. The endpoint's default of 20 concurrent migrations can be raised to 100.

Google Workspace and Gmail#

CodeMeaningUsual causeFirst check
MigrationPermanentException: Special credentials are required in order to access this IMAP account. with Application-specific password requiredGoogle refused the password in the CSVAn IMAP-based Gmail migration where the account needs an app passwordPut an app password in the Password column, then select Resume migration for the user

The Google Workspace migration type doesn't use passwords: it signs in with a service account and its JSON key, and the CSV needs only EmailAddress. Endpoint or batch failures there usually trace back to Google-side setup. Microsoft warns that a mistyped OAuth scope list makes the batch fail later, after it starts, and that delegation changes can take 15 minutes to 24 hours to apply. Targets must already exist as mail users, and messages that retention or archiving tools delete or archive during the move are flagged as missing. Google Workspace migration isn't available for GCC High or DoD.

Cutover migrations#

CodeMeaningUsual causeFirst check
MigrationTransientException: We weren't able to connect to the remote server. Please verify that the migration endpoint settings are correct and your certificate is validThe cutover endpoint wasn't createdOutlook Anywhere authentication or RPC proxy settings are wrongOutlook Anywhere client authentication set to Basic, then the test below
Microsoft.Exchange.Rpc.ServerUnavailableException: Error 0x6ba (The RPC server is unavailable) from cli_NspiBindThe inner error: the address book connection through the RPC proxy failedRPC proxy ports, or domain controllers not listening on port 6004The RPC proxy configuration and port 6004
"/o=NT5/ou=.../cn=..." is not a valid SMTP addressThe batch contains an invalid recipient addressStale or invalid GAL entries in the source organizationUpdate-GlobalAddressList -Identity "Default Global Address List" -DomainController <DC> on-premises, then delete and re-create the batch

Cross-tenant migrations#

Microsoft documents numbered codes for its orchestrated tenant-to-tenant migration, which moves mailboxes after identity mapping and can also move OneDrive and Teams data (those codes aren't listed here). The EXCH codes rest on the same pieces as a classic cross-tenant move started with New-MigrationBatch, so their causes are worth checking for both: organization relationships in both tenants, the migration app, a mail-enabled security group that scopes who may move, a migration endpoint in the target, a target mail user carrying the source ExchangeGuid and ArchiveGuid, and a Cross-Tenant User Data Migration license.

Authorization, identity mapping and mailbox moves#

CodeMeaningUsual causeFirst check
MIGR-001Tenant authorization error. The tenants are not configured to support migration.The organization relationship is wrongBoth organization relationships
MIGR-002User migration failed. User <X> is not authorized to migrate.Not in the source scoping groupAdd the user to the group, retry
MIGR-003User [X] migration failed. Please retry user migration.A failure the service asks you to retryRetry the user
MIGR-004Authorization errorOrganization relationship, group membership, or bothBoth settings
IM-003User migration failed. User <X> is not mapped to an identity on tenant <Y>.Not added to identity mappingAdd and map the user, retry
CTM-001 / CTM-002User migration validation failed. User is already a part of the same batch (or of another running batch)Duplicate submissionNone
CTM-100User migration validation failed. User identity mapping not found.No mapping for the userRerun identity mapping
CTM-101User migration validation failed. User identity mapping not in completed state.Mapping started but not finishedWait, or complete the mapping steps
CTM-102 / CTM-103Service busy, or an internal error during validationService sideResubmit in a later batch; contact support if CTM-103 persists
CTM-104The CTMS and/or CTIM Apps are either not provisioned, not enabled, or not fully configured.Incomplete tenant setupRerun the CTMS setup script
EXCH-07No valid migration endpoints for the remote tenant.Misspelled endpoint name in the input JSON, or no tenant-to-tenant endpoint for that sourceGet-MigrationEndpoint in the target
EXCH-08Setup validation failed, or The connection to the server outlook.office.com could not be completed.Target missing or lacking ExchangeGuid or ArchiveGuid; GUID mismatch; source not in scope; litigation hold without an exception; source over quota; stale MailboxMoveRemoteHostName; OAuth app; license; soft-deleted objectsTest-MigrationServerAvailability for the user (below) and Microsoft's Cross Tenant Mailbox Migration Validation script
EXCH-13Mailbox migration for user {0} has already completed in another batchResubmitted userNone
EXCH-15Max retry for user with id {0} reached.Possibly a service-side issueNew batch; contact support if it repeats
EXCH-23Max Test-MigrationServerAvailability retry for user with id {0} reached.The EXCH-08 causesEndpoint, organization relationship, scope
EXCH-24No license was found for the source recipient or the target recipientNo Cross-Tenant User Data Migration licenseAssign it, retry
EXCH-25 / EXCH-26Cannot delete ongoing migration for user {0} / Delete request for batch {0} failed.Deleting too early, or an incomplete purgeComplete or cancel first; retry the deletion

Identity mapping messages#

CodeMeaningUsual causeFirst check
ExchangeGuid missmatch, expected '{0}', found '{1}'. (also ArchiveGuid)Target GUID differs from the sourceWrong value stamped on the target mail userCopy the source mailbox's GUIDs, rerun mapping
Missing required EmailAddresses. Expected '{0}', found '{1}'.The target lacks the source addressIncomplete target mail userAdd the source user's address
'{0}' email addresses use domains that are not accepted in the organization.Foreign domains on the targetOnly source or target domains are allowedRemove them, or accept the domain
Couldn't find a mail user with '{0}' ExternalEmailAddress in '{1}' tenant.No matching targetExternalEmailAddress isn't the source user's addressSet ExternalEmailAddress
The mail user '{0}' is synchronized from an on-premises directory.Synced (hybrid) targetStandard mapping can't write to itMicrosoft's hybrid tenant steps

API responses#

CodeMeaningUsual causeFirst check
HTTP 409 ConflictThe job must be in a final state (completed, failed or canceled) before deletionJob still runningCancel or wait, then delete
HTTP 422 BadArgumentduplicateDisplayNameJob or minThresholdFailedReused batch name, or completeAfterDateTime in the pastA unique name; a future time

How to verify a fix#

Test the endpoint before you restart anything. A good result reports Result : Success:

PowerShell
Test-MigrationServerAvailability -IMAP -RemoteServer imap.contoso.com -Port 993
Test-MigrationServerAvailability -ExchangeOutlookAnywhere -ExchangeServer exch01.contoso.local `
    -RPCProxyServer mail.contoso.com -Authentication Basic -EmailAddress admin@contoso.com -Credentials (Get-Credential)
Test-MigrationServerAvailability -Gmail -EmailAddress admin@fabrikam.com `
    -ServiceAccountKeyFileData ([System.IO.File]::ReadAllBytes("C:\keys\gws.json"))
Test-MigrationServerAvailability -Endpoint "T2T-Fabrikam" -TestMailbox user@contoso.com   # cross-tenant, in the target
  • Resume the fixed user (Resume migration in the EAC, or Start-MigrationUser) and confirm it moves to Synced with an empty ErrorSummary.
  • For cross-tenant moves, rerun identity mapping and confirm the user passes validation in the next batch.
  • After completion, compare item counts with Get-EXOMailboxStatistics before you remove the source.

References#

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

M365 Subject Matter Expert, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)