MedhaCloud
Link copied to clipboard!
Microsoft 365

Office 365 Migration Issues — Fixes for the 11 Most Common Failures (2026)

Sreenivasa Reddy G
Sreenivasa Reddy G
Founder & CEO
Jul 3, 202611 min read
24
Office 365 Migration Issues — Fixes for the 11 Most Common Failures (2026)

We get two kinds of migration calls: "please migrate us" and — more often than you'd think — "our migration is stuck and people can't work." This post is the field guide for the second call. Every issue below is something we have fixed in production, usually at an inconvenient hour.

Batch and sync failures

1. Migration batch stuck on "Syncing" for days

Causes, in order of likelihood: source-side throttling (EWS limits on hosted Exchange, Google export quotas), oversized items hitting transfer limits, or a batch that quietly hit a corrupt item and stopped advancing.

Check per-mailbox statistics, not the batch summary: Get-MigrationUser -BatchId <batch> | Get-MigrationUserStatistics — look at SyncedItemCount vs TotalItemCount over an hour. Rising = throttled, be patient or raise source limits. Frozen = restart that user's move: Remove-MigrationUser, re-add in a fresh batch.

2. Migration status "NeedsApproval"

Not an error — the batch was created with manual completion, or skipped items exceed the approval threshold and Exchange wants a human to accept the data loss before completing.

Review skipped items first (Get-MigrationUserStatistics -Identity user@domain | Select -Expand SkippedItems), then approve: Set-MigrationBatch <batch> -ApproveSkippedItems and Complete-MigrationBatch <batch>. If the skipped items matter (calendar items often do), export them from source first.

3. "Bad item limit exceeded" / TooManyBadItemsPermanentException

Corrupt or unreadable items in the source mailbox exceeded the batch's tolerance.

Modern approach: approve skipped items (above). Legacy on-prem moves: raise limits on the move request — Set-MoveRequest user@domain -BadItemLimit 100 -AcceptLargeDataLoss. Then verify what was actually skipped — 90% of the time it's ancient calendar corruption nobody will miss; 10% it's the CFO's contacts.

4. TransientFailureSource / repeated transient errors

The source server is dropping connections — undersized on-prem Exchange, EWS throttling policy, or a proxy/firewall timing out long-running requests.

On-prem source: check EWS throttling (Get-ThrottlingPolicy), raise EwsMaxConcurrency for the migration account, and exclude migration traffic from SSL inspection on the firewall. Hosted source you don't control: shrink batch sizes and let delta sync grind it out.

5. "Mailbox size exceeds target quota"

Source mailbox is bigger than the target's 50 GB (Business/E1) or 100 GB (E3/E5) primary quota.

Options, best-first: enable target archive + move older mail to it post-migration; pre-shrink with source-side archiving/PST export of historical years; or upgrade that user's license tier. For fleets of 100 GB+ mailboxes, this needs a per-mailbox strategy — it's a standard part of our assessment phase.

Post-cutover user pain

6. Outlook keeps asking for password after migration

The #1 Monday-morning ticket. Outlook is still trying legacy auth against the old server, or the Windows Credential Manager holds stale credentials, or the profile predates Modern Auth.

In order: clear stale entries in Credential Manager → verify Modern Auth (Get-OrganizationConfig | fl OAuth*) → if the profile still points at on-prem, create a fresh Outlook profile. Fleet-wide prompts = check that Autodiscover DNS actually cut over (next issue).

7. Autodiscover not working after migration

Clients still resolve Autodiscover to the decommissioned/on-prem server. Classic causes: internal DNS zone still hosts an old autodiscover A record, the on-prem SCP in Active Directory still points at dead Exchange, or the CNAME to autodiscover.outlook.com was never created.

External DNS: autodiscover.yourdomain.com CNAME autodiscover.outlook.com. Internal DNS: kill any A/CNAME overrides. Domain-joined fleet: remove the stale SCP — Get-ClientAccessService | Set-ClientAccessService -AutoDiscoverServiceInternalUri $null on the old server, or strip it via ADSI Edit after decommission. Test with Test-OutlookConnectivity / testconnectivity.microsoft.com.

8. Outlook rules not working after migration

Client-side rules reference old-environment object IDs; rules pointing at moved folders break silently.

Have users review rules in Outlook on the web (Settings → Mail → Rules) — OWA shows the server-side truth. Broken legacy rules: export a list, then recreate; for stubborn corruption run Outlook once with the /cleanrules switch (nukes all rules — export first).

9. Outlook search not working / notes missing after migration

Search: the local index is rebuilding against a new OST — can take hours; incomplete results meanwhile are normal. Notes: they migrated, but the Notes module is hidden or they landed in a different folder tree.

Search — let indexing finish (Windows Settings → Search → Searching Windows shows backlog), or rebuild the profile if it never completes. Notes — check the ellipsis (…) in Outlook's navigation → Notes, and verify in OWA that the folder content arrived.

Planning-stage traps

10. Migration endpoint creation fails

New-MigrationEndpoint errors usually mean the migration admin account lacks impersonation rights, EWS is blocked at the firewall, or Basic auth assumptions on a Modern-auth-only source.

Grant ApplicationImpersonation to the migration account on the source, confirm https://source/EWS/Exchange.asmx is reachable from the internet, and use the right endpoint type (Outlook Anywhere for legacy, MRS proxy for hybrid: enable via Set-WebServicesVirtualDirectory -MRSProxyEnabled $true).

11. Throttling limits killing throughput

Microsoft ingest throttling (Mailbox Replication Service) plus source-side limits mean big-bang weekends fail on math alone: 500 mailboxes × 8 GB does not fit through one weekend window.

Pre-stage: start batches 1–2 weeks early, let initial sync grind, then delta-sync daily. Cutover weekend then only carries the final delta — hours, not days. This is the single biggest structural fix for large-migration pain.
Migration stuck right now? We take over mid-flight migrations — stalled batches, broken Autodiscover, half-moved tenants — and land them. 8-minute response, engineers on the problem today: Microsoft 365 migration rescue & services. Planning-stage instead? Run the migration calculator or read the 27-step checklist before anything breaks.

Our Microsoft-certified team delivers seamless migrations with zero downtime.

Expert Migration Services

Topics

office-365-migrationtroubleshootingexchange-onlinemigration-batchautodiscover
Sreenivasa Reddy G
Written by

Sreenivasa Reddy G

Founder & CEO15+ years

Sreenivasa Reddy is the Founder and CEO of Medha Cloud, recognized as "Startup of the Year 2024" by The CEO Magazine. With over 15 years of experience in cloud infrastructure and IT services, he leads the company's vision to deliver enterprise-grade cloud solutions to businesses worldwide.

Managed IT SupportCloud InfrastructureDigital Transformation
Follow on LinkedIn

Need Expert Help?

Our certified cloud and IT engineers are ready to tackle your toughest challenges — from migrations to managed services.