Windows  ·  medium  ·  Applications & Microsoft 365

OneDrive stuck on "Processing changes" or not syncing

Sync has stalled — usually on a single file it cannot handle, a path that is too long, or a sign-in that has quietly expired.

What you see

The OneDrive icon spins indefinitely, files show a permanent blue arrow, or the client reports "You're not signed in" while appearing to be.

What is actually wrong

An invalid character or a path over the length limit will halt the whole queue. Beyond that, a corrupt local cache, an expired token, or a file locked open by another application.

Codes and articles

Processing changes0x8004de400x8004de850x80070185Sync pendingOneDrive error

Fixes (2)

Find the file that is holding the queue
PowerShell as the affected user25 minuteslow riskreversible

It is stuck rather than disconnected. One file blocks everything behind it.

  1. Look for paths that exceed the limit. This is the most common single cause and it is invisible in Explorer.

    PowerShell
    Get-ChildItem "$env:OneDrive" -Recurse -Force -ErrorAction SilentlyContinue |  Where-Object { $_.FullName.Length -gt 240 } |  Select-Object -First 20 @{n='Len';e={$_.FullName.Length}},FullName

    OneDrive syncs a path that includes the SharePoint site prefix, so a path that is legal locally can be over the limit once uploaded. Shortening a folder name high in the tree usually fixes dozens at once.

  2. Look for characters that cannot be used in a SharePoint path.

    PowerShell
    Get-ChildItem "$env:OneDrive" -Recurse -Force -ErrorAction SilentlyContinue |  Where-Object { $_.Name -match '["*:<>?/\\|]' -or $_.Name -match '^\s|\s$|\.$' } |  Select-Object -First 20 FullName
  3. Look for files still open in an application — Office files with a ~$ prefix are lock files left behind by a crash.

    PowerShell
    Get-ChildItem "$env:OneDrive" -Recurse -Force -Filter '~$*' -ErrorAction SilentlyContinue | Select-Object FullName,LastWriteTime
  4. Rename or remove what you find, then pause and resume sync from the OneDrive menu.

Confirm it workedThe icon settles to a green tick and the file count stops changing.
If you need to undo itRenamed files can be renamed back; nothing was deleted unless you chose to.
Reset the client without losing local files
PowerShell as the affected user30 minutes plus resyncmedium riskreversible

It cannot connect, cannot sign in, or is stuck after the file checks above.

  1. Understand what a reset does before running it: it clears the local sync database and re-downloads the file list. Files marked "Always keep on this device" are re-verified; files that are online-only are re-linked. Local-only files that were never uploaded are the ones at risk, so copy anything unsynced out of the folder first.

  2. Run the reset.

    Command Prompt
    %localappdata%\Microsoft\OneDrive\onedrive.exe /reset
  3. If nothing happens after a minute, start it manually — the reset does not always relaunch the client.

    PowerShell
    Start-Process "$env:LOCALAPPDATA\Microsoft\OneDrive\onedrive.exe"
  4. Sign in again and let it reconcile. On a large library this takes hours, and the machine should be left on and on mains.

    Most reports that a reset lost files are actually a resync that was interrupted partway. It looks identical and it is not the same thing.

  5. If the client is old, install the current version from Microsoft before concluding the reset failed.

Confirm it workedThe status settles to Up to date and the file count matches the web view.
PowerShell
Get-Process OneDrive | Format-List Name,Path,StartTime
If you need to undo itNothing local is deleted by the reset itself. Files copied out beforehand can be copied back.

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.