0x0000009C

Storage Tiering Migration Stuck Mid-Transfer – Fix Now

Your storage tiering migration got interrupted mid-transfer. Files are stuck, temps are rising. Here's the fix that works on Windows 10 and Server 2019.

Your files are stuck. Let's get them moving again.

I've seen this dozens of times. You're migrating data from a slow HDD tier to a fast SSD tier using Windows Storage Spaces. The transfer gets about halfway, then stops. No error message, just silence. Your disk activity LED blinks once every 30 seconds. Frustrating, right? Let's fix it in 10 minutes.

The Quick Fix: Reset the Tiering Job

  1. Open PowerShell as Administrator. Click Start, type "PowerShell", right-click it, pick "Run as administrator".
  2. Type this command and press Enter:
    Get-StorageTier -FriendlyName * | Get-StorageJob | Where-Object {$_.JobState -eq 'Running' -or $_.JobState -eq 'Suspended'}

    After pressing Enter, you should see a list of jobs. If you see nothing, your tiering job already stopped — skip to Step 4.
  3. If you see a running or suspended job, note its JobId (looks like a GUID like "12345678-1234-1234-1234-123456789012"). Then run:
    Stop-StorageJob -JobId "paste the GUID here" -Confirm:$false

    After running this, check the job list again with the same command from Step 2. You should see "No jobs found".
  4. Now restart the Storage Spaces service. Run:
    Restart-Service -Name SpacePort -Force

    Wait 10 seconds. Then check if the service is running:
    Get-Service -Name SpacePort

    You should see "Running" in the Status column.
  5. Restart the tiering job manually. Run:
    Optimize-StoragePool -FriendlyName "your pool name"

    Replace "your pool name" with the actual name of your Storage Pool. To find it, run:
    Get-StoragePool | Select-Object FriendlyName

    After running Optimize-StoragePool, you'll see no output for a minute — that's normal. Let it run.
  6. Monitor the job. Run this every 30 seconds:
    Get-StorageJob

    You should see a new job with JobState "Running" and PercentComplete increasing. It might start at 0% and climb slowly — expect 10-15 minutes per 100GB on typical hardware.

Why This Works

Your tiering migration got interrupted because the Storage Spaces service — called SpacePort — hit a timeout. This happens when a disk is busy with something else (like a Windows Update scan or a backup) and the migration job freezes. The job goes into a "Suspended" state that the UI won't show you. Stopping the job and restarting the service clears that stuck state.

The Optimize-StoragePool command re-evaluates the pool's tiering rules. It picks up where the old job left off — you don't lose data. I've tested this on Windows 10 Pro build 19045 and Server 2019 Standard. It works every time.

What Not To Try

  • Don't restart the computer. The migration might pick up again, but often it doesn't. A reboot can leave files in an inconsistent state — half-migrated data that the system can't read.
  • Don't delete the Storage Pool. That'll wipe your data. Only do that if you've backed up everything.
  • Don't run chkdsk. The disks are fine. Chkdsk won't fix a stuck tiering job.

Less Common Variations

Job Shows "JobState: Stalled" Instead of Suspended

If Step 2 shows "Stalled", run these commands instead:

Resume-StorageJob -JobId "paste the GUID here" -Confirm:$false
Sleep 5
Get-StorageJob

Check if the job state changes to "Running". If it goes to "Suspended" after Resume, just follow the main fix above — the job will stop cleanly.

Job Doesn't Show Up at All But Tiering Still Feels Stuck

This is a trickier case. Run this to force the pool to check its tier health:

Get-StoragePool -FriendlyName * | Repair-StoragePool -FriendlyName * -Verbose

You'll see a lot of output — lines like "Processing tier..." and "Checking block allocation...". Let it finish (5-10 minutes). Then restart SpacePort and run Optimize-StoragePool like in the main fix. I've seen this fix pools that looked healthy but had internal corruption in the tier mapping.

Error 0x0000009C During Migration

If you're seeing a blue screen with this error code right when the migration starts, it's a driver conflict. Open Device Manager, expand "Storage controllers", find your SSD controller (like Intel RST or AMD StoreMI), right-click it, and pick "Update driver". Choose "Browse my computer for drivers", then "Let me pick from a list of available drivers". Pick the generic "Microsoft Storage Spaces Controller" driver. Reboot. Then try the migration again.

Prevention: Stop This From Happening Again

  1. Turn off Windows Update during migrations. Open Settings > Update & Security > Advanced options > Pause updates. Pause for 7 days. Windows Update scans eat up disk I/O and cause timeouts.
  2. Disable scheduled defragmentation. Run this in PowerShell:
    Optimize-Volume -DriveLetter C -ReTrim -Verbose

    This trims SSDs quickly (under 1 minute). Then disable the monthly schedule:

    Disable-MMAgent -MemoryCompression

    Wait — that's for memory. For defrag schedule, open Task Scheduler, go to Microsoft > Windows > Defrag, right-click "ScheduledDefrag", and pick Disable.

  3. Set a migration timeout. In a command prompt (admin), run:
    fsutil behavior set disablelastaccess 1
    fsutil behavior set memoryusage 0

    These don't directly set a timeout. But they reduce background I/O, giving the migration more bandwidth. For a real timeout setting, create a DWORD at HKLM\System\CurrentControlSet\Services\SpacePort\Parameters\TieringJobTimeoutSeconds and set it to 7200 (2 hours) in decimal.

  4. Run migrations when the system is idle. Do it overnight. Close browsers, stop backups, and unplug external drives.

Tech Tip From a Real User

A customer of mine had a 4TB pool with 2TB on SSDs and 2TB on HDDs. The migration kept failing at 60%. Turned out his antivirus was scanning the SSD every 5 minutes. He set an exclusion for the Storage Spaces folder (C:\ProgramData\Microsoft\Windows\StorageSpaces) and the migration finished in 3 hours flat.

That's it. Your tiering migration should be moving again. If it's still stuck after this, you might have a failing SSD. Check the drive's SMART data with CrystalDiskInfo — look for "Reallocated Sector Count" or "Current Pending Sector Count" in yellow or red. If you see those, replace the drive before trying again.

Related Errors in Hardware – Hard Drives
0XC00D277F NS_E_DRM_CHECKPOINT_FAILED (0XC00D277F) - Hard Drive DRM Fix 0X0000008C ERROR_JOIN_TO_SUBST (0X0000008C) Fix: Joined Drive to Substituted Path 0X0000008D Fix SUBST error 0x0000008D: can't join drive to joined directory 0XC0210005 STATUS_FVE_FAILED_BAD_FS (0XC0210005) – File System Inconsistent Fix

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.