Fix SharePoint Migration Errors, Complete Setup Guide

Microsoft Fix Intermediate 14 min read Official Docs Grounded Updated April 20, 2026

Why This Is Happening

I've worked through SharePoint migration failures on dozens of enterprise tenants, and I'll tell you something upfront: the error messages Microsoft gives you are almost never the real story. You kick off a SharePoint migration, whether you're moving from SharePoint Server on-premises, a file share, Google Drive, or Dropbox, and somewhere in the process things go sideways. Tasks get stuck at 0%. Identity mapping throws a vague failure. Files above a certain size silently refuse to copy. The migration log shows "throttled" over and over. Sound familiar?

Here's what's actually going on. SharePoint migration isn't a single tool, it's an ecosystem. Microsoft's Migration Manager inside the SharePoint admin center, the SharePoint Migration Tool (SPMT), the OneDrive sync app, and optional services like Azure Data Box and Microsoft FastTrack all interplay. When one piece of that ecosystem is misconfigured, the others fail in ways that look totally unrelated. A permissions gap in your Azure App Registration shows up as a stuck scan job. An outdated SPMT agent version causes throttling errors that look like a network problem. A skipped identity mapping step means your migrated content lands with broken permissions, and users can't open their own files.

There's also a timing issue many admins don't realize. Microsoft officially removed SharePoint Server 2010 workflow services from existing tenants back on November 1, 2020. If you're still running classic approval or collect-feedback workflows tied to SharePoint Server 2010, those are gone on the Microsoft 365 side, and they won't migrate as workflows. They need to be rebuilt in Power Automate. This catches people completely off guard mid-migration when their automated business processes suddenly stop working in the destination tenant.

The good news: every one of these problems has a documented fix. The SharePoint migration process is well-supported when you follow the right sequence. I've seen organizations move terabytes of content cleanly once they sorted out the permissions, the identity mapping, and the agent version. It's not magic, it's just doing things in the right order.

Who typically sees these errors? IT admins handling mergers and divestitures running cross-tenant OneDrive migrations. Small business owners moving from Google Drive to Microsoft 365 for the first time. SharePoint Server farm administrators finally decommissioning their on-premises infrastructure. And anyone who tried to shortcut the setup and skipped the identity mapping step (don't do that, I'll explain why later).

Browse all Microsoft fix guides for more solutions: Browse all Microsoft fix guides →

The Quick Fix, Try This First

If your SharePoint migration tasks are stuck, failing immediately, or producing zero progress, the fastest thing you can do right now is check three things in this exact order. This sequence resolves about 60% of migration failures I see.

First, confirm your Migration Manager agent is current. Open the SharePoint admin center, go to Migration > Migration Manager, then select the Agents tab. If any agent shows a version below v2.3, it needs updating. Microsoft released Migration Manager Agent v2.3 specifically to fix throttling handling failures that cause tasks to die silently. Download the latest agent directly from the Migration Manager agents tab, there's a download link right there. Install it on the machine running your migration, then restart the agent service.

Second, check that identity mapping ran before you hit Migrate. This is the #1 skipped step. In Migration Manager, when you click the Migrate button for the first time, the tool is supposed to prompt you to configure identity mapping. If you dismissed that prompt or never saw it, your migration will copy files but permissions won't transfer, users will land in the destination with zero access to their own content. Go to Settings > Identity mapping in Migration Manager and verify mappings are configured before re-running.

Third, verify the destination SharePoint site permissions. Open the destination site in SharePoint, go to Site settings > Site permissions, and confirm the account running Migration Manager has at minimum Site Collection Administrator rights. Without this, the tool can scan but can't write, and the error message it gives you ("Access denied" or error code 0x80070005) is the same one you'd see for a dozen other issues, so admins often chase the wrong thing for hours.

If those three checks don't resolve it, keep reading, the step-by-step section below covers every scenario from file share migrations to cross-tenant moves to workflow reconstruction.

Pro Tip
Run a scan in Migration Manager before you ever click Migrate. The scan report will surface permission errors, unsupported file types, path-length violations (SharePoint has a 400-character URL limit), and files that exceed size limits, all before a single byte moves. I've seen teams save 8+ hours of troubleshooting just by reading the scan report first.
1
Verify Permissions and Azure App Registration

SharePoint migration setup problems almost always trace back to permissions, either on the source, the destination, or the Azure App Registration that Migration Manager uses to authenticate. Let's lock this down first.

In the Microsoft 365 admin center, navigate to Azure Active Directory > App registrations and find the app you registered for Migration Manager. Open it, go to API permissions, and confirm you have these granted with admin consent:

Sites.FullControl.All (SharePoint)
User.Read.All (Microsoft Graph)
Files.ReadWrite.All (Microsoft Graph)

If any of those show a yellow warning or "Not granted for [tenant]", click Grant admin consent for [tenant name] and confirm. Without admin consent, Migration Manager can authenticate but silently fails on write operations, you'll see tasks complete with 0 files migrated and no useful error.

As of March 2025, Migration Manager added support for Certificate Based Authentication for Azure App Registrations when migrating file shares. If your organization's security policy blocks client secret authentication, set up a certificate in your app registration: go to Certificates & secrets > Certificates, upload a valid .cer file, then configure Migration Manager to use that certificate. This is now the recommended auth model for enterprise file share migrations.

On the destination SharePoint side, run this PowerShell to confirm site collection admin rights (replace the URL and UPN with your values):

Connect-SPOService -Url https://[tenant]-admin.sharepoint.com
Get-SPOUser -Site https://[tenant].sharepoint.com/sites/[destination-site] | Where-Object { $_.IsSiteAdmin -eq $true }

If the migration account isn't in that list, add it:

Set-SPOUser -Site https://[tenant].sharepoint.com/sites/[destination-site] -LoginName migration@yourdomain.com -IsSiteCollectionAdmin $true

When it worked: the scan job in Migration Manager completes with a green status and a populated file count. If the scan still shows 0 files or throws "Unauthorized," double-check that MFA isn't interrupting the app registration auth flow, service account credentials used in Migration Manager should use app-only auth, not interactive login.

2
Configure Identity Mapping Before Any Migration Runs

I cannot stress this enough, identity mapping is not optional. If you skip it and migrate anyway, your files will arrive in SharePoint with broken permission inheritance. Every document that had specific user permissions on the source will show as "access denied" to those users on the destination. Cleaning that up post-migration is a nightmare that takes longer than the migration itself.

Here's how to do it right. In Migration Manager, go to Settings > Identity mapping. You have two options: auto-mapping and manual mapping.

Auto-mapping works when your source and destination user accounts share the same email addresses (common in Google Workspace to Microsoft 365 migrations). Click Auto-map and let Migration Manager match users by email. Review the results, any accounts that didn't match will show in red and need manual attention.

Manual mapping is needed for on-premises Active Directory accounts or renamed accounts post-merger. You can upload a CSV with source-to-destination mappings. The CSV format is:

SourceUser,TargetUser
domain\jsmith,jsmith@newcompany.com
domain\mwilliams,mwilliams@newcompany.com

As of May 2024, the entry limit for identity mapping increased from 50,000 to 500,000 entries, which finally makes this viable for large enterprise migrations. You can also export your current identity map to CSV, edit it externally, and re-import, useful when you need to audit mappings across thousands of accounts. The export button is at Settings > Identity mapping > Export.

One thing that trips people up: identity mapping only runs at task creation time. If you create migration tasks and then update your identity map, the existing tasks don't pick up the new mappings. You need to delete the tasks and recreate them, or use the "Copy to Migrations" panel to push updated scan results through with fresh settings.

When it worked: go back to your migration tasks and hover over the identity column, it should show a count of successfully mapped users. Any remaining unmapped users will be flagged as warnings, not blockers, but you should resolve them before starting the actual migration run.

3
Handle Large Files and WAN Dependency with Azure Data Box

If you're running a SharePoint migration over your WAN link and it's grinding, either taking weeks or saturating your internet connection to the point where normal work grinds to a halt, you have a real option that Microsoft specifically built for this: Azure Data Box.

Here's how the process works. You order an Azure Data Box device directly through the Azure portal at portal.azure.com > Create a resource > Azure Data Box. Microsoft ships you a physical storage appliance, typically a 100 TB ruggedized device. You copy your source data from your file servers or SharePoint Server directly onto the device using standard SMB or NFS protocols. Then you ship it back to Microsoft. Their engineers copy the data into your Azure Blob storage, and from there, you use SPMT to migrate from that Azure Blob endpoint into SharePoint. Your WAN link is completely out of the equation for the bulk data transfer.

For files specifically, here's what you need to know about size limits. As of December 2024, Migration Manager supports files up to 250 GB across all migration scenarios, file share, Google Drive, Dropbox, and SharePoint Server. Before that update, cloud migration scenarios had a 15 GB limit that caused silent failures for anyone with large video files, database exports, or design assets. If you migrated before December 2024 and noticed large files were missing from the destination, this is why, and you'll need to re-migrate those specific items.

To identify which files were skipped due to size, pull your migration report from Migration Manager: go to Migrations tab > select your task > Download report > All items. Filter the CSV by the Status column for "Skipped" and look at the Message column, size-related skips will say something like FileExceedsLimit or ItemTooLarge.

Once you've identified them, create a new migration task in Migration Manager targeting just those files and re-run. They'll migrate cleanly under the new 250 GB cap.

4
Migrate SharePoint Server 2010 Workflows to Power Automate

This step catches a lot of organizations by surprise, especially those running long-lived intranets or legacy approval processes. Microsoft removed SharePoint Server 2010 workflow services from all existing tenants on November 1, 2020. That means if you're migrating a SharePoint Server environment that has classic out-of-the-box (OOTB) workflows, approval workflows, collect-feedback workflows, anything running on the 2010 workflow engine, those will not function in Microsoft 365. They don't migrate as live workflows. The workflow definitions and associations migrate as data, but the engine that runs them doesn't exist in the cloud.

SPMT can migrate the workflow definitions and associations (the metadata about what workflows existed), but you need to rebuild the actual logic in Power Automate. Here's the practical path:

First, before you migrate, export a list of all active workflows on your SharePoint Server. Run this PowerShell against your on-premises farm:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$site = Get-SPSite "http://yourfarm/sites/yoursite"
foreach ($web in $site.AllWebs) {
    foreach ($list in $web.Lists) {
        foreach ($wfAssoc in $list.WorkflowAssociations) {
            Write-Output "$($web.Url) | $($list.Title) | $($wfAssoc.Name) | $($wfAssoc.BaseTemplate)"
        }
    }
}

This gives you an inventory of every workflow association across your site collection. Sort by BaseTemplate to identify 2010-engine workflows, they'll show as TodoItemWorkflow, ApprovalWorkflow, or CollectFeedback.

For each one, you need to build a Power Automate equivalent. Microsoft has pre-built templates for the most common ones, in Power Automate, search for "SharePoint approval" in the template gallery and you'll find drop-in replacements for OOTB approval workflows. The triggers map to SharePoint list item creation or modification events. For custom workflow logic, you'll need to rebuild step-by-step, but the standard approval and feedback loops take about 20 minutes each using the templates.

When it worked: after migration, open your destination SharePoint list, go to Automate > Power Automate > See your flows, and confirm the new flow is enabled and connected to the list. Run a test by creating a new list item and verifying the approval email arrives at the expected recipient.

5
Migrate Users' Known Folders and Local Files with OneDrive

Not every SharePoint migration involves terabytes of server data. Sometimes the problem is simpler: users have files on their local machines, their Desktop, Documents, Pictures folders, that need to move to OneDrive or SharePoint as part of the migration project. Trying to do this manually at scale is chaos. The right tool for this is Known Folder Move, built into the OneDrive sync app.

Known Folder Move redirects Windows known folders, Desktop, Documents, Pictures, Screenshots, and Camera Roll, to OneDrive automatically, without requiring users to drag anything. To deploy it across your organization, push these Group Policy settings or registry keys (both work, GPO is cleaner for domain-joined machines):

Registry path: HKLM\SOFTWARE\Policies\Microsoft\OneDrive
Value name: KFMSilentOptIn
Value type: REG_SZ
Value data: [Your Microsoft 365 tenant ID]

Value name: KFMSilentOptInWithNotification
Value type: DWORD
Value data: 1

Your tenant ID is in the Azure portal under Azure Active Directory > Overview > Tenant ID. Once this registry key is pushed via Group Policy or Intune, the next time the OneDrive sync app starts on a user's machine, it silently redirects their known folders to OneDrive, no user interaction required. The KFMSilentOptInWithNotification flag means users get a small toast notification so they're not confused about where their Desktop went.

For files that aren't in known folders, files on the user's C drive in random locations, or on a mapped network share, the easiest path is the OneDrive sync app itself. Have users open File Explorer, find the OneDrive folder in the left sidebar, and drag their files there. Yes, it's manual, but for small sets of files it's faster and less error-prone than trying to script it.

A critical note from the official documentation: migrating your content to Microsoft 365 copies the files, your source files are not deleted. This is intentional. Don't delete your source after migration until you've verified everything landed correctly, tested access with a sample of users, and run through your migration report. I've seen teams delete source data the day after migration and then discover a specific folder was excluded due to a path-length error. Keep your source intact for at least 30 days post-migration.

Advanced Troubleshooting

If the steps above haven't resolved your SharePoint migration problems, you're likely dealing with one of the deeper issues: throttling at the Microsoft 365 tenant level, cross-tenant migration complexity, or enterprise network configurations that are blocking the migration agent traffic. Here's how to dig into each of these.

Throttling analysis. Migration Manager Agent v2.3 added an enhanced throttling handling mechanism that automatically retries throttled requests rather than failing the task outright. But if you're on an older agent version, throttling errors look like task failures with no obvious cause. Open Event Viewer on the machine running your migration agent. Navigate to Windows Logs > Application and filter by Source: OneDrive or Source: SharePoint Migration. Look for Event ID 6041 (throttle notification) or 6042 (retry exhausted). If you're seeing those, update the agent to v2.3+ and consider reducing your migration task concurrency from 5 parallel tasks down to 2 to stay under the tenant's throttling thresholds.

Cross-tenant OneDrive migration. During mergers, acquisitions, or divestitures, you often need to move users' OneDrive accounts from one Microsoft 365 tenant to another. This is not something you do through Migration Manager, it requires PowerShell and specific tenant-level setup on both the source and destination tenants. Both tenant administrators must coordinate. Start by enabling cross-tenant moves in both tenants:

# Run on SOURCE tenant
Set-SPOCrossTenantRelationship -Scenario MnA -PartnerRole Target `
  -PartnerCrossTenantHostUrl https://[destinationtenant]-my.sharepoint.com

# Run on DESTINATION tenant
Set-SPOCrossTenantRelationship -Scenario MnA -PartnerRole Source `
  -PartnerCrossTenantHostUrl https://[sourcetenant]-my.sharepoint.com

Once the relationship is established, use Start-SPOCrossTenantUserContentMove to initiate individual user moves. This is a tenant admin operation, regular SharePoint admins don't have the permissions to run it.

Network-level issues. Migration Manager communicates outbound on ports 443 (HTTPS) and 445 (SMB, for file share migrations). If your firewall or proxy is intercepting SSL on port 443, migration agent connections to *.sharepoint.com and *.blob.core.windows.net will fail with certificate errors that look like auth failures. Add those domains to your SSL inspection bypass list. Also whitelist *.microsoftonline.com for the authentication calls.

SharePoint migration not working for modern pages. If you're migrating classic SharePoint Server pages and they're arriving in Microsoft 365 as broken or unstyled, that's expected behavior, classic pages don't automatically become modern pages. Microsoft provides a page transformation tool. Run the SharePoint PnP Modernization Framework post-migration to convert classic pages to modern equivalents, preserving content web parts where possible.

When to Call Microsoft Support
Escalate to Microsoft if: your migration tasks fail with error code 0x80131509 (a known agent compatibility issue in specific Windows Server versions that requires a backend fix), if your cross-tenant migration relationship cmdlets throw Relationship already exists even after removing all configured relationships (tenant metadata sync issue), or if you're seeing data loss in the migration report and can't account for it via the scan report. In all these cases, open a support ticket through the Microsoft Support portal with your migration task IDs and the full migration report CSV attached, the task IDs allow Microsoft engineers to pull server-side logs that aren't visible to you from the admin center.

Prevention & Best Practices

The migrations that go smoothly aren't lucky, they're planned. Every SharePoint migration that I've seen finish cleanly and on schedule followed the same pattern: scan first, fix before migrating, and keep source data intact until verification is complete. The ones that turn into weeks-long firefights usually skipped the scan, rushed into migration without resolving identity mapping, and deleted source data too soon.

Here's the prep work that prevents 90% of migration headaches:

Start with a discovery scan, not a migration. Use Migration Manager's scan feature to understand exactly what you're working with before a single file moves. The scan report will give you total file count, total size, a breakdown of file types, longest file paths (flag anything over 350 characters, they'll fail at SharePoint's 400-character limit), and any files with illegal characters in the name (: * ? " < > | # % & are all blocked). Fix these issues in the source before running the migration, it's infinitely easier than trying to remediate them in the destination.

Test with a pilot group first. Pick a small department, 10 to 20 users, and run their content through the full migration pipeline first. Verify their permissions, check that their workflows (or Power Automate replacements) work, and have them open their key files from the new SharePoint location. Get their sign-off before scaling to the full organization. This pilot also gives you real-world timing data to plan the full migration schedule.

Keep your Migration Manager agent updated. Agent updates contain critical throttling and error handling improvements. v2.3 specifically fixed task failures caused by throttling, if you're running anything older, you're working harder than you need to. Check the Agents tab in Migration Manager regularly.

Use Microsoft FastTrack for large or complex migrations. If your migration involves more than a few hundred users or complex source systems, FastTrack is free for eligible Microsoft 365 subscriptions (1,000+ licensed seats). FastTrack specialists can guide your migration planning, help you configure SPMT and Migration Manager correctly from the start, and review your identity mapping before you hit Migrate. Getting that free sanity check can prevent the kind of errors that take days to untangle.

Quick Wins
  • Always run a full discovery scan in Migration Manager before starting any migration task, fix errors at the source, not the destination
  • Configure identity mapping before creating migration tasks, it doesn't apply retroactively to existing tasks
  • Keep source data for at least 30 days post-migration, Microsoft confirms source files are not deleted during migration, so verify thoroughly before decommissioning your source
  • Update Migration Manager Agent to v2.3+ to get the enhanced throttling handling that prevents silent task failures under load

Frequently Asked Questions

How do I migrate my classic SharePoint Server content to Microsoft 365?

The main tool for this is SPMT (SharePoint Migration Tool) or Migration Manager, both available in the SharePoint admin center. You'll connect to your on-premises SharePoint Server farm, run a scan to identify content and any issues, configure identity mapping to match your on-premises AD accounts to Microsoft 365 accounts, then run the migration. Make sure to handle classic pages separately using the PnP Modernization Framework if you want them converted to modern SharePoint pages, SPMT migrates the content but doesn't auto-modernize the page layout. Plan for workflow reconstruction in Power Automate if you're running any 2010-engine workflows, since those no longer function in Microsoft 365.

My SharePoint migration is really slow, how do I remove the WAN dependency?

Microsoft built exactly the right tool for this: Azure Data Box. You order a physical storage device through the Azure portal, copy your data to it locally, ship it back to Microsoft, and they load the data directly into Azure Blob storage, bypassing your internet connection entirely for the bulk transfer. From Azure Blob, you use SPMT to migrate into SharePoint. This is the recommended approach for large on-premises migrations where WAN bandwidth is constrained or shared with business-critical traffic. It's also useful for meeting strict data transfer windows when you can't afford sustained WAN saturation.

Why did my SharePoint migration complete but users can't access their files?

This is almost always an identity mapping issue. When identity mapping isn't configured before the migration runs, files arrive in the destination SharePoint site but the permission assignments still reference the source account identities, which don't exist in the new tenant. The fix is to configure identity mapping in Migration Manager under Settings > Identity mapping, then re-run the affected migration tasks so permissions are re-applied correctly. If the tasks have already completed, you may need to use PowerShell to reset inheritance or reassign permissions on the affected document libraries, a painful but fixable situation.

Can I migrate Google Drive or Dropbox content to SharePoint with Migration Manager?

Yes, Migration Manager supports Google Drive, Dropbox, Box, and file shares in addition to SharePoint Server as migration sources. For Google Drive, Microsoft has been actively improving this: as of February 2025, version history is now preserved during Google Drive migrations, and a simplified migration flow for small and mid-sized businesses (called Migration Manager Lite, currently in private preview as of late 2024) is designed to make the Google-to-Microsoft-365 move much more accessible. For Dropbox, you use Migration Manager's cloud migration path with the same scan-first, identity-map, then migrate workflow as other sources.

What happened to my SharePoint 2010 workflows after migration?

Microsoft ended SharePoint Server 2010 workflow services for all tenants on November 1, 2020. That means those classic OOTB workflows, approval, collect feedback, and others built on the 2010 workflow engine, do not function in Microsoft 365. SPMT can migrate the workflow definition metadata and associations as data, but the workflows won't run in the cloud. You need to rebuild them in Power Automate. Microsoft provides template flows in Power Automate that map closely to the standard OOTB approval and feedback workflows, so the most common ones can be rebuilt in under 30 minutes using those templates.

How do I move OneDrive accounts from one Microsoft 365 tenant to another during a merger?

This requires the cross-tenant OneDrive migration feature, which uses PowerShell cmdlets rather than the Migration Manager UI. Both tenant administrators, source and destination, need to establish a cross-tenant relationship using Set-SPOCrossTenantRelationship, then use Start-SPOCrossTenantUserContentMove to initiate the transfer for individual users. The process is designed specifically for mergers and divestitures where user accounts are moving to a new organization. Microsoft FastTrack can assist with planning and executing large-scale cross-tenant migrations if you're moving hundreds or thousands of users and want expert guidance on the sequencing.

Related Microsoft Fix Guides

H
Sai Kiran Pandrala
Our team includes certified Microsoft engineers, Azure architects, and system administrators with 10+ years of enterprise IT experience. Every guide is written from hands-on troubleshooting, not guesswork. We test every fix before publishing.