Migrate
Exchange Server to Exchange Online Migration
Hybrid-first guidance for moving on-prem Exchange to Exchange Online including OAuth, free/busy, public folders, and Autodiscover cutover.
Priya Shah
Senior Systems Engineer
Moving from Exchange Server to Exchange Online is the most common migration shape in the Microsoft world, and almost always done via hybrid. The technical work is well-understood, the tooling is mature, and the failure modes are familiar. What separates a clean migration from a painful one is the order: get hybrid right first, validate free/busy and OAuth before you touch a mailbox, then do the moves in disciplined batches. This guide walks through the hybrid-first path with the OAuth and public folder specifics that derail projects when ignored.
Skip the manual setup — let Mailbox Taxi handle it
One desktop app, every IMAP provider, zero data leaving your machine.
Hybrid or not?
You have three paths, the same as for any Exchange to Microsoft 365 move:
- Cutover. One window, no coexistence. Under 150 mailboxes and a high downtime tolerance.
- Staged. Batches over weeks, MX stays on-prem until the last batch. 150 to 2000 mailboxes.
- Hybrid. Full coexistence, OAuth-based free/busy, cross-premises permissions. The right choice for any environment where users on both sides need to see each other's calendars during the migration, or where decommission is a long-tail process.
For Exchange-to-Exchange-Online specifically, hybrid is the default. The free/busy story alone justifies it: during a six-week coexistence, users still meeting each other still expect calendar lookups to work. Without hybrid, those lookups fail or return stale data.
If you have not deployed hybrid before, the hybrid Exchange overview covers the architecture in enough depth to plan from. The broader provider-agnostic move pattern is in Exchange to Office 365; the present post is the same territory framed for Exchange-only shops who do not see this as a "Microsoft 365" project.
OAuth: do this before you move a mailbox
OAuth between on-prem Exchange and Exchange Online is what makes free/busy, MailTips, and message tracking work cross-premises in modern hybrid deployments. The Hybrid Configuration Wizard sets it up. Things to know:
- OAuth replaces the older organisation relationship sharing for new deployments. If your environment already runs the legacy sharing, you can migrate to OAuth, but doing it as part of the broader Microsoft 365 move is a clean opportunity.
- The OAuth handshake depends on healthy Autodiscover, valid certificates on Exchange external endpoints, and the right service principal in Microsoft Entra ID.
- Failures present as "free/busy is broken between tenants". The root cause is almost never free/busy itself — it is OAuth not completing.
Validate OAuth before scheduling mailbox moves
Test free/busy in both directions from a known-good on-prem mailbox to a known-good cloud mailbox before you create the first migration batch. If it fails, fix it now. It is exponentially harder to debug while batches are in flight.
Source-side prerequisites
Regardless of path:
- Exchange is patched to a supported cumulative update.
- MRSProxy is enabled and EWS is externally reachable on the same FQDN as Autodiscover.
- Certificates are valid, including the chain. Microsoft's pipeline refuses connections with any certificate warning.
- Disconnected mailboxes are cleaned up. Orphan mail-enabled public folder objects in AD are removed.
- The migration admin has
ApplicationImpersonationand the necessary scopes. - Litigation hold and retention policies are documented. They migrate with the mailbox but the metadata occasionally needs reapplication.
The Exchange migration guide covers source-side hygiene in more depth.
Destination-side prerequisites
On the Exchange Online side:
- Microsoft Entra ID is populated, ideally by Azure AD Connect from on-prem AD.
- Every target mailbox is licensed (Exchange Online Plan 1 or Plan 2, or the bundled SKU).
- The Hybrid Configuration Wizard has run and free/busy is verified.
- Mailbox throttling for the migration admin is appropriate. Default policy throttles aggressive migration traffic.
- The Autodiscover record still points at on-prem Exchange. It will flip at cutover.
How to run the migration
Decide on hybrid vs non-hybrid
Score your environment: mailbox count, coexistence duration, whether free/busy needs to work cross-premises, identity model. Most enterprises moving Exchange Server to Exchange Online land on hybrid. Document the decision and the rationale — it will be asked about by the steering group and by future operators wondering why one Exchange server is still running.
Patch and prepare on-prem Exchange
Bring Exchange to a supported CU. Validate MRSProxy and EWS externally with Microsoft's Remote Connectivity Analyzer. Resolve all certificate warnings — even cosmetic ones. Clean up disconnected mailboxes, soft-deleted recipients, and orphan public folder mail-enabled objects in AD. The on-prem environment must be in a clean state before the hybrid configuration runs.
Run Azure AD Connect
Set up Azure AD Connect from on-prem AD to Microsoft Entra ID. Wait for the initial sync to complete and confirm every user that needs a destination mailbox is present in Entra ID with the correct UPN and
proxyAddresses. If users have UPN suffixes that do not match the destination domain, fix that now — the Hybrid Configuration Wizard will not migrate accounts but it will use the synced data and any mismatch shows up as a mailbox routing problem later.Run the Hybrid Configuration Wizard
Download the current Hybrid Configuration Wizard from the Microsoft 365 admin centre and run it from an on-prem Exchange server with internet access. It configures OAuth (or the organisation relationship if you are on an older Exchange version), federation trust, send and receive connectors, accepted domains, and the email address policy adjustments needed for hybrid. After it completes, test cross-premises free/busy from a pilot on-prem mailbox to a pilot cloud mailbox in both directions. If free/busy fails, do not proceed to batches.
Create the migration endpoint and pilot
In the Exchange Admin Center, create a remote move migration endpoint pointing at your on-prem MRSProxy URL. Use migration admin credentials. Validate the endpoint. Pick 3 to 5 pilot mailboxes — one normal, one heavy (>30 GB), one with extensive shared calendar use, one with delegate permissions, and a shared mailbox. Move them, then verify item counts, Sent integrity, calendar attendees, delegate permissions, and that Outlook desktop on Windows and Mac plus mobile clients reconnect cleanly.
Move mailboxes in batches
Group remaining users into batches of 50 to 100. Stagger batch start times by 30 to 60 minutes to avoid hitting tenant-level throttling in one wave. Run off-hours in the source time zone. Monitor batch progress in EAC and watch for
Too many simultaneous connectionsorConnection was aborted— both are throttling signals. Reduce concurrency rather than retry harder. Expect 90 to 180 minutes per 10 GB mailbox at typical throttle ceilings.Migrate public folders
Public folders go last. Run Microsoft's PowerShell-based public folder migration scripts (matched to your source Exchange version, not a different version). Lock source-side public folder writes during the final delta sync to avoid divergence. Validate ACLs on the destination — public folder permissions occasionally need a manual touch after migration. If your public folder estate has not been touched in 18 months, consider archiving instead of migrating. Less to migrate means less to break.
Flip Autodiscover and start decommission planning
Switch Autodiscover from
mail.yourcompany.comtoautodiscover.outlook.com. Outlook desktop will detect the change on next launch and walk users through a re-prompt. Communicate that. Monitor for clients that do not re-prompt cleanly — usually because of a cached profile, a hard-coded server name, or an outdated mobile app. Plan the on-prem Exchange decommission for 30 to 90 days post-cutover. Keep at least one residual hybrid Exchange server long-term for recipient management of any AD-synced users.
Free/busy lookup during coexistence
Free/busy is the indicator that hybrid is healthy. During coexistence:
- On-prem users querying a cloud user's calendar go via the organisation relationship or OAuth handshake to Exchange Online.
- Cloud users querying an on-prem user's calendar go the other direction.
- A small delay (1 to 5 seconds) on the first lookup is normal; subsequent lookups are cached.
- Persistent failures usually trace to certificate issues, broken Autodiscover, or a stale federation trust. Microsoft's
Test-FederationTrustandTest-OrganizationRelationshipPowerShell cmdlets surface the right diagnostics.
If you see lookups working in one direction but not the other, the broken direction is the one to investigate first. Asymmetry almost always points at a specific endpoint, not a fundamental config error.
Public folders revisited
Public folders are where Exchange-to-Exchange-Online migrations overrun:
- Migrate them after mailboxes, never before.
- The source-side hierarchy must be clean. Run
PublicFolderToMailboxMapGenerator.ps1and check no mailbox bucket exceeds Exchange Online's 50 GB ceiling. - The PowerShell migration scripts have version-specific quirks. Match the script set to your Exchange version.
- After migration, validate ACLs on a sample. If permissions are wrong, fix on the destination, not by re-running the migration.
Consider modern alternatives during the move
Many public folder use cases are better served by shared mailboxes, Microsoft 365 groups, or Teams channels. The migration is a clean opportunity to retire public folders rather than carry them forward. Make the decision per folder, not all-or-nothing.
Throttling
Realistic ceilings:
- Per-mailbox concurrent connections: 2 to 4 threads is typical. More starts triggering throttling.
- Per-batch throughput: 1 to 3 GB per hour per mailbox, depending on message size profile.
- Tenant-level: Microsoft's pipeline auto-paces, but third-party tools (Mailbox Taxi included) need to respect the same ceilings.
Throttling messages to watch for in tool logs: Too many simultaneous connections, Connection was aborted, OAuth2 token expired (which is sometimes a transient retry storm, not an actual auth failure).
Errors you will recognise
AUTHENTICATIONFAILED— migration admin credentials wrong orApplicationImpersonationrevoked.STARTTLS handshake failed— certificate issue on the source-side EWS endpoint.MRSProxy unavailable— MRSProxy disabled or EWS unreachable.Message too large for destination— message exceeds 150 MB. Skip and report.Too many simultaneous connections— throttling. Reduce concurrency.
Communication
Three messages, same as any large migration:
- Project announcement, two weeks out.
- 72-hour notice to the user's batch.
- Cutover-day note with the help-desk contact.
The migration cuts each user's mobile profile. Make that the headline of the 72-hour notice. Everything else is secondary in the user's mind.
After cutover
Keep at least one on-prem Exchange server running long-term in hybrid configuration. It is used for recipient management of any AD-synced users that remain — you cannot fully manage hybrid recipients from Exchange Online's admin UI alone. Microsoft licenses this residual server free for tenants in hybrid configuration.
For the broader pillar context, the complete email migration guide sets out the framework that applies to every provider pair. The Office 365 migration guide covers the destination-side prerequisites in more depth and is worth reading even if you think of this as an Exchange-only project. And the Autodiscover glossary entry is five minutes well spent if you have never had Autodiscover break a migration.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.
Related reading
migrate
How to Migrate Exchange to Office 365
Pick between cutover, staged, and hybrid for your Exchange to Office 365 move, with throttling, public folder, and Autodiscover specifics.
blog
Exchange Server Migration: On-Prem and Online
An exchange migration guide for IT admins: hybrid, cutover, staged, MRSProxy, public folders, autodiscover, modern auth, and post-migration validation.
glossary
What Is a Hybrid Exchange Setup? When It's Worth It
What is hybrid Exchange? A practical explainer of coexistence between on-prem Exchange and Microsoft 365, mail flow, free/busy, and when hybrid is overkill.
blog
Office 365 Migration: The Definitive Playbook
A complete office 365 migration playbook for IT admins: discovery, batching, throttling, modern auth, cutover vs staged vs hybrid, and validation.
glossary
What Is Autodiscover? Outlook's Setup Mechanism Explained
What is Autodiscover? A practical guide to how Outlook finds Exchange and Microsoft 365 settings, the DNS records involved, and why it breaks during migrations.
blog
The Complete Email Migration Guide for 2026
Plan, execute and validate an email migration without losing folders, flags, or sleep. A pillar guide that walks the full process end to end.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.