How to Compare OneDrive Migration Tool Logs With User Complaints
🔍 WiseChecker

How to Compare OneDrive Migration Tool Logs With User Complaints

When you migrate files from a local drive or another cloud service to OneDrive, users often report missing files, broken links, or incorrect permissions. You need to verify whether these complaints match the migration tool logs. This article explains how to extract relevant log entries, cross-reference them with user reports, and identify false positives versus real migration failures. You will learn a repeatable process using the Microsoft 365 Migration Manager, PowerShell, and Excel to reconcile logs with user complaints efficiently.

Key Takeaways: Comparing Migration Logs with Complaints

  • Migration Manager > Reports > Export: Exports a CSV of all scan and migration results, including file paths, sizes, and error codes.
  • PowerShell Get-SPOMigrationJobProgress: Retrieves per-item status and error details for a specific migration job.
  • Excel Power Query or VLOOKUP: Matches user-reported file paths or names against log entries to find exact error reasons.

ADVERTISEMENT

How Migration Tool Logs Are Structured

Microsoft 365 Migration Manager stores logs in two locations. The first is the in-browser report under Migration Manager > Reports. This report lists every scanned source item, its target path, size, and a status column that shows Success, Failed, or Skipped. The second location is the Azure Storage container you specified when creating the migration agent. The agent writes detailed per-item logs to a container named migration-logs by default.

Each log entry contains a timestamp, source file path, target file path, error code, error message, and a correlation ID. The correlation ID links a single file across multiple log files. When a user complains about a specific file, you can search for that file name or path in the exported CSV or in the Azure Storage logs. The error code tells you whether the failure was a permission issue, a file name conflict, a size limit, or a network timeout.

Steps to Cross-Reference Logs With User Complaints

Follow these steps to compare migration tool logs with user complaints systematically. You will need access to the Microsoft 365 admin center, the Azure Storage account used for migration logs, and Excel or another spreadsheet application.

  1. Export the Migration Manager report
    Sign in to the Microsoft 365 admin center. Go to Migration Manager > Reports. Click Export and choose CSV. Save the file to your local machine. This CSV contains all scanned items with their final status. If you ran multiple migration jobs, export each job separately or use the filter to select a specific job ID.
  2. Collect user complaints in a structured list
    Create a spreadsheet with columns: User Name, Reported File Path, Reported Issue, Reported Date, and Priority. Ask users to provide the exact file path from their OneDrive or SharePoint location. For example, Documents/Finance/Q4_Report.xlsx. If the user cannot remember the path, search the user’s OneDrive audit log for recent access attempts on missing files.
  3. Load both datasets into Excel
    Open the exported CSV in Excel. In a new sheet, paste the user complaints list. Ensure the file path column in both sheets uses the same format. If the migration log shows relative paths and users give absolute paths, create a helper column that strips the root folder prefix.
  4. Match entries using VLOOKUP
    In the user complaints sheet, add a new column named Log Status. Use the formula =VLOOKUP(B2, MigrationLogs!A:A, 1, FALSE) where B2 is the user-reported file path and MigrationLogs!A:A is the column containing source paths from the export. If the formula returns a path, the file was scanned. If it returns #N/A, the file was never migrated or the path differs.
  5. Investigate matched entries for error details
    For each matched file, look at the corresponding Status column in the migration log. If the status is Failed, copy the error code and error message to the user complaints sheet. If the status is Success but the user still reports an issue, the problem likely lies outside the migration tool — for example, permissions not inherited, file version conflicts, or user training gaps.
  6. Use PowerShell to get per-item logs for unmatched files
    Open SharePoint Online Management Shell. Run Get-SPOMigrationJobProgress -Identity "JobID" to see all items in a specific job. Pipe the output to Where-Object {$_.SourceFile -like "filename"} to find a specific file. This method works when the file was migrated but the CSV export was filtered or truncated.
  7. Check Azure Storage logs for network or timeout errors
    Navigate to your Azure Storage container. Download the migration-logs folder contents. Search for the user-reported file name using any text editor or log parser. Network timeout errors appear as System.Net.WebException: The operation has timed out. These often affect multiple files in the same batch and may require rerunning the migration agent during off-peak hours.

ADVERTISEMENT

Common Patterns When Logs and Complaints Do Not Match

User says file is missing, log says success

This is the most frequent mismatch. The file was copied correctly, but the user is looking in the wrong library or folder. Ask the user to show you the exact URL they are browsing. Compare the target path in the migration log with the user’s URL. Often the user expects a file in Shared Documents but the log shows it was placed in a subfolder called Team Documents. Use the SharePoint site’s Content and Structure view to show all locations.

User says permissions are wrong, log shows no error

Migration tools copy files but do not always copy unique permissions. If the source had custom permissions, you must migrate them separately using the SharePoint Migration Tool with the -IncludeUserPermissions flag. Without this flag, the file inherits permissions from the target library. The log will show success because the file copy itself did not fail. Check the user’s complaint against the target library’s permission settings in Library Settings > Permissions for this document library.

User says file is corrupt, log shows no error

A file that appears corrupt after migration may have been corrupted before migration. Migration tools compute a checksum (MD5 hash) during the copy. If the checksum matches, the file is bit-for-bit identical. Ask the user to download the original file from the source (if still available) and compare the file size and hash. In PowerShell, run Get-FileHash -Path "filepath" -Algorithm MD5 on both copies. If the hashes match, the corruption existed before migration.

User reports a file name conflict, log shows skipped

When two files with the same name exist in the source, the migration tool skips the duplicate by default. The log shows Skipped with error code NameConflict. Explain to the user that the second file was not copied because a file with that name already exists in the target. The user must rename one of the files and run an incremental migration to copy the renamed file. Use the log to show the exact duplicate file paths.

Migration Log Fields vs User Complaint Fields: Mapping Table

Field Migration Log Entry User Complaint Entry
File identifier SourcePath or TargetPath User-provided file path or name
Status Success, Failed, Skipped Missing, corrupt, permission error, or broken link
Error code Numeric or string code like 0x80070002 Not provided — must infer from user description
Timestamp UTC timestamp of migration attempt Date user first noticed the issue
User context Migration agent identity or tenant admin Affected user’s email or display name

Conclusion

You can now export migration logs from Migration Manager, collect user complaints in a structured spreadsheet, and match them using VLOOKUP or PowerShell queries. When a match shows success but the user still reports a problem, check permissions inheritance, file hashes, or the target library path. For unmatched files, use the Azure Storage container logs to find timeout or network errors. An advanced tip is to automate the matching process by writing a PowerShell script that reads both the exported CSV and a user complaint CSV, then outputs a reconciliation report with status and error details for each file.

ADVERTISEMENT