Windows Update Errors

0x800f0905 Source Files Not Found: Offline Servicing That Works

If you’re staring at error 0x800f0905 with the message “The source files could not be found,” you’re not alone. This Windows servicing error typically appears when installing cumulative updates, enabling .NET Framework 3.5, running DISM /RestoreHealth, or performing feature-on-demand installs. It usually means Windows can’t locate the payloads it needs to repair the component store or to complete the update—either online or from an offline source. The good news: you can fix it. This guide goes beyond generic advice and shows you, step-by-step, how to resolve 0x800f0905 using reliable offline servicing methods that actually work, along with complementary diagnostics to restore update health and system stability.

Understanding the Error
————————————————————

At a high level, 0x800f0905 is a servicing error produced by the Windows Component-Based Servicing (CBS) stack. You’ll often see it paired with “The source files could not be found” in DISM output or CBS.log when:

– Windows Update can’t retrieve required files due to policy, network, or catalog issues.
– The local component store (WinSxS) is missing or corrupt.
– The specified offline source is incorrect, mismatched (wrong build/edition/language), or inaccessible.
– You’re enabling a Feature on Demand (e.g., .NET Framework 3.5) without providing a valid source.

Plain language: Windows needs certain files to repair itself or install a feature. It looked in the usual places, didn’t find them, and you didn’t give it a correct offline source—or the source didn’t match.

Common scenarios that trigger 0x800f0905:
– Running DISM /Online /Cleanup-Image /RestoreHealth and getting “source files could not be found”
– Installing .NET Framework 3.5 (NetFx3) and failing with a source error
– Cumulative updates that consistently fail after multiple reboots
– Systems joined to domains with Group Policy that prevents contacting Windows Update
– Environments behind WSUS without required payloads synchronized

Note: Windows may show related CBS errors like 0x800f081f (source missing) or 0x800f0906 (download failure). The fixes below largely overlap and will cover those cases too.

Quick Reference Table
————————————————————

| Cause | Symptom | Recommended Fix |
|——|———|——————|
| Missing/corrupt component store (WinSxS) | DISM /RestoreHealth fails with 0x800f0905 | Use a matching ISO and run DISM with /Source:WIM:… and /LimitAccess; run SFC; perform in-place repair if needed |
| Wrong source (mismatched build/edition/language) | “The source files could not be found” even when a source is specified | Verify exact Windows build (winver), language, and edition; choose correct install.wim index; use a matching ISO |
| .ESD instead of .WIM source | DISM /Source fails pointing to install.esd | Convert ESD to WIM or use WIM syntax; pick the right image index |
| Group Policy/WSUS blocking downloads | DISM or optional features installation fails | Enable policy “Specify settings for optional component installation and component repair” or allow contact with Windows Update |
| Corrupt Windows Update cache | Updates repeatedly fail | Reset SoftwareDistribution and Catroot2; run Windows Update troubleshooter |
| File system or disk errors | SFC/DISM fail repeatedly | Run CHKDSK; check SMART/health; repair disk issues |
| System files damaged beyond repair | Persistent failures across tools | Perform an in-place repair upgrade with the latest ISO |
| Interfering security tools or network filtering | Download or source access fails | Temporarily disable third-party AV/firewall; test with clean network path |

Common Causes
————————————————————

– Windows component store issues:
– Corrupted WinSxS manifests or payloads
– Out-of-sync servicing stack after interrupted updates

– Wrong or inaccessible source:
– Using a non-matching ISO (different build, language, or edition)
– Using install.esd without proper syntax or conversion
– Pointing DISM to the wrong index in install.wim
– Using a server/WSUS environment without synced Features on Demand

– Policy and network:
– Group Policy preventing Windows from downloading repair content
– Proxy/SSL inspection or firewall blocking Windows Update endpoints

– Update cache corruption:
– Damaged SoftwareDistribution or Catroot2 directories

– Disk and file system errors:
– Bad sectors, failing drives, or file system corruption

– Security and third-party conflicts:
– Aggressive endpoint protection or endpoint firewalls preventing access

– Rarely, hardware instability:
– RAM or storage issues that surface under heavy I/O during servicing

See also  0xC1900101 Upgrade Error: Driver Rollback Strategy That Works

Preliminary Checks
————————————————————

Before deep-dive repairs, complete these quick sanity checks.

1) Boot to Safe Mode (if the system is unstable)
– Hold Shift while selecting Restart to open Windows Recovery.
– Troubleshoot > Advanced options > Startup Settings > Restart.
– Press 4 or F4 for Safe Mode (or 5/F5 for Safe Mode with Networking).

2) Back up important data
– Copy essential files to external storage or cloud.
– If feasible, create a full system image using Windows Backup or a third-party tool.

3) Basic health checks
– Check disk:
– Open an elevated Command Prompt:

chkdsk C: /scan

– If errors are reported, schedule a fix:

chkdsk C: /f

– System File Checker:

sfc /scannow

– Baseline DISM (expect failure if you’re here, but it’s good to log):

DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /RestoreHealth

If RestoreHealth fails with 0x800f0905, proceed to the offline servicing steps below.

Step-by-Step Troubleshooting
————————————————————

Follow these steps in order. After each major step, test whether the error is resolved.

Step 1 — Confirm your exact Windows version and build
– Press Win + R, type:

winver

– Note the Version (e.g., 22H2) and OS Build (e.g., 19045.4651).
– Also confirm:
– Edition: Windows 10/11 Home/Pro/Enterprise
– System language/locale

Why this matters: The repair source must match the installed OS closely—version, edition, and language. Build numbers should be the same or newer within the same release line.

Step 2 — Get a matching ISO (the reliable offline source)
– Windows 10/11 client:
– Use the Media Creation Tool or download from Microsoft’s official software download page.
– Windows Server:
– Use the Volume Licensing Service Center or official Eval ISOs and proper Feature on Demand packs.

Tip: If your system is Windows 10/11 22H2, obtain an ISO for the same version and the same language. If you’re domain-joined with WSUS, ensure the ISO matches your edition and language.

Step 3 — Mount the ISO and identify the correct image index
– Right-click the ISO > Mount. Note the drive letter (e.g., E:).
– Check the available images and indexes:

DISM /Get-WimInfo /WimFile:E:\sources\install.wim

If the ISO has install.esd instead of install.wim:

DISM /Get-WimInfo /WimFile:E:\sources\install.esd

– Identify the index matching your installed edition (e.g., Windows 11 Pro).

Optional: Convert ESD to WIM (if you prefer WIM sources)

DISM /Export-Image /SourceImageFile:E:\sources\install.esd /SourceIndex:INDEX_NUMBER /DestinationImageFile:C:\Temp\install.wim /Compress:max /CheckIntegrity

Replace INDEX_NUMBER with the correct index from the previous command.

Step 4 — Run DISM with an explicit offline source (the fix most people miss)
– Use WIM source syntax:

DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:E:\sources\install.wim:INDEX_NUMBER /LimitAccess

– If using ESD directly:

DISM /Online /Cleanup-Image /RestoreHealth /Source:ESD:E:\sources\install.esd:INDEX_NUMBER /LimitAccess

– What /LimitAccess does: It prevents DISM from contacting Windows Update, forcing it to use your specified source.

Step 5 — Repair .NET Framework 3.5 the right way (if that’s what failed)
If your specific issue is enabling NetFx3:
– Use the SxS folder on the ISO:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs

– If you’re on Windows Server, use the matching Features on Demand ISO; the client ISO’s sxs folder won’t work for Server.

Step 6 — Reset Windows Update components (if updates fail repeatedly)
– Open an elevated Command Prompt and run:

net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old

net start wuauserv
net start cryptSvc
net start bits
net start msiserver

– Reboot and try Windows Update or your DISM command again (with or without the ISO source as needed).

Step 7 — Check Group Policy that blocks repair content (common in domains)
If your PC is domain-joined or managed, repairs can be blocked by policy.
– Open Local Group Policy Editor:
– Press Win + R, type gpedit.msc
– Go to: Computer Configuration > Administrative Templates > System
– Open: “Specify settings for optional component installation and component repair”
– Recommended:
– Enable the policy
– Check “Contact Windows Update directly to download repair content instead of Windows Server Update Services (WSUS)”
– Optionally specify an alternate source path, e.g.:

See also  0x80240034 During Cumulative Updates: Real Causes and Solutions

WIM:E:\sources\install.wim:INDEX_NUMBER

– Run gpupdate:

gpupdate /force

– Retry DISM or Windows Update.

Step 8 — Clean up the component store (optional, then re-run repair)

DISM /Online /Cleanup-Image /StartComponentCleanup

Then retry:

DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:E:\sources\install.wim:INDEX_NUMBER /LimitAccess

Step 9 — Review CBS and DISM logs for specifics
– CBS log:

C:\Windows\Logs\CBS\CBS.log

– DISM log:

C:\Windows\Logs\DISM\dism.log

Search for “0x800f0905”, “source”, “payload”, or “manifest” to confirm which component failed and whether the index/source is mismatched.

Step 10 — Verify storage and file system integrity again
– Quick SMART check (PowerShell):

Get-PhysicalDisk | Get-StorageReliabilityCounter | ft FriendlyName, Wear, ReadErrorsTotal, WriteErrorsTotal, Temperature -AutoSize

– If you suspect disk issues, run vendor diagnostics or Windows’ built-in checks again:

chkdsk C: /scan
sfc /scannow

Step 11 — Perform an in-place repair upgrade (the nuclear but safe option)
If 0x800f0905 persists:
– Mount the matching ISO and run setup.exe.
– Choose “Keep personal files and apps.”
– After the repair install, run Windows Update and test DISM again.
This preserves apps and data but replaces system files, servicing stack, and component store content. It fixes even stubborn servicing failures.

Minidump Analysis (only if you’re also seeing BSODs)
If the servicing failure coincides with blue screens, analyzing a minidump can identify misbehaving drivers or modules.

Enable and find minidumps:
– Ensure small memory dump is enabled:
– Control Panel > System > Advanced system settings > Startup and Recovery > Settings
– Under “Write debugging information,” select “Small memory dump (256 KB)”
– Dumps are stored in:

C:\Windows\Minidump

Analyze with BlueScreenView (easy) or WinDbg (advanced):
– BlueScreenView:
– Download from NirSoft, open dump file, look for the “Caused By Driver” column.
– WinDbg (from Microsoft Store as WinDbg Preview):
– File > Open Crash Dump > select a .dmp from C:\Windows\Minidump
– Use:

!analyze -v
lm

– Note any third-party driver consistently mentioned. Update, roll back, or uninstall it.

If BSODs implicate storage or memory drivers (e.g., nvme.sys, storport.sys), fix those before retrying DISM—hardware instability can derail servicing operations.

Advanced Diagnostics
————————————————————

Use these with caution; they’re powerful and can stress a system.

1) Driver Verifier
– Purpose: Catch misbehaving third-party drivers that cause instability during heavy operations like servicing.
– Enable (risky—can trigger BSODs intentionally to expose bad drivers):

verifier /standard /all

– Reboot and use the system; if BSODs occur, analyze minidumps and address the flagged driver.
– Disable when done:

verifier /reset

– Only run this on stable systems and consider creating a restore point first.

2) Event Viewer
– Check for servicing and update errors:
– Event Viewer > Windows Logs > Setup
– Event Viewer > Applications and Services Logs > Microsoft > Windows > Servicing > Operational
– Event Viewer > Applications and Services Logs > Microsoft > Windows > WindowsUpdateClient > Operational
– Look for error codes around the time of failure (0x800f0905, 0x800f081f, 0x800f0906, 0x800f0831) to understand if it’s a source, policy, or download issue.

Post-Fix Checklist
————————————————————

After your repair succeeds:

– Re-run integrity checks:

sfc /scannow
DISM /Online /Cleanup-Image /CheckHealth

– Install pending updates and reboot.
– Verify Event Viewer is clean:
– Setup and Servicing logs should show success events and no recurring errors.
– If you repaired .NET 3.5, confirm it’s enabled:
– Control Panel > Programs and Features > Turn Windows features on or off > .NET Framework 3.5 checked.
– Retest any application that failed due to the missing feature or update.
– Create a fresh system restore point and/or image backup now that the system is healthy.

When to Seek Professional Help
————————————————————

– Persistent 0x800f0905 after an in-place repair upgrade.
– DISM/SFC show unrecoverable errors repeatedly (e.g., CBS manifest corruption that reappears).
– SMART or vendor diagnostics indicate drive problems, or you see frequent I/O errors.
– Minidumps implicate critical hardware drivers or you experience random BSODs unrelated to servicing.
– You’re in a tightly controlled enterprise setting (WSUS/ConfigMgr/Intune) and lack permissions to adjust Group Policy or sources—contact your IT administrator.

See also  0x80070570 Corrupted Files: Safe Cleanup and Retry

Prevention Tips
————————————————————

– Keep a matching ISO handy:
– For your Windows version/edition/language, especially if you manage multiple PCs or don’t always have internet.
– Practice driver hygiene:
– Use OEM drivers; avoid unnecessary third-party utilities that hook deep into the OS.
– Regularly update:
– Apply cumulative updates and servicing stack updates promptly to avoid drift and corruption.
– Enable and verify backups:
– Maintain regular system images and file backups for quick recovery.
– Monitor disk health:
– Check SMART and run occasional CHKDSK; replace aging SSDs/HDDs proactively.
– Don’t interrupt updates:
– Avoid forced shutdowns during update phases to prevent component store corruption.
– Document policies:
– In managed environments, ensure Group Policy for optional components and repair sources is correctly configured and documented.

Conclusion
————————————————————

Error 0x800f0905 means Windows couldn’t find the files it needed to repair or update itself. The most reliable solution is to provide a correct offline source and run DISM with explicit WIM/ESD parameters and /LimitAccess. Verify the ISO matches your Windows version, edition, and language, pick the right image index, and let DISM rebuild the component store. If policy or cache issues are in play, reset Windows Update components and adjust Group Policy as needed. And if all else fails, an in-place repair upgrade almost always brings a stubborn system back to healthy. With the steps above, you should be able to resolve “Source files not found” in a consistent, repeatable way.

FAQ
————————————————————

#### What does error 0x800f0905 actually mean?
It’s a Windows servicing failure often paired with “The source files could not be found.” The CBS servicing stack couldn’t locate required payloads in the local component store or from Windows Update, and you didn’t provide a valid (matching) offline source.

#### Do I need to use an ISO, or can Windows Update fix this?
If Windows Update is functioning and allowed by policy, DISM can sometimes repair using online sources. But when you see 0x800f0905, using a matching ISO and specifying /Source with /LimitAccess is the most reliable fix.

#### How do I pick the correct WIM/ESD index?
Run:

DISM /Get-WimInfo /WimFile:E:\sources\install.wim

Match the image edition (e.g., Pro, Enterprise) to your installed Windows. Use that index in your DISM /Source parameter.

#### Why does .NET Framework 3.5 keep failing to install?
NetFx3 is a Feature on Demand that often requires the SxS payload from the ISO. Use:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs

Also ensure Group Policy isn’t blocking contact with Windows Update if you’re not using an ISO.

#### When should I do an in-place repair upgrade?
If DISM with a proper offline source still fails, or you have repeated servicing errors and update failures, an in-place repair upgrade using a matching ISO (keeping files and apps) is the fastest, safest way to fully rebuild the component store and fix 0x800f0905.

Appendix: Quick Commands Reference
————————————————————

– Check Windows version:

winver

– List image indexes:

DISM /Get-WimInfo /WimFile:E:\sources\install.wim

– Restore health with WIM source:

DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:E:\sources\install.wim:INDEX /LimitAccess

– Enable .NET 3.5:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs

– Reset Windows Update components:

net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start wuauserv
net start cryptSvc
net start bits
net start msiserver

Stay patient and methodical—most systems with 0x800f0905 can be repaired without data loss by using the correct offline source and the steps above. You’ve got this.

About the author

Jonathan Dudamel

Jonathan Dudamel

I'm Jonathan Dudamel, an experienced IT specialist and network engineer passionate about all things Windows. I have deep expertise in Microsoft project management, virtualization (VMware ESXi and Hyper-V), and Microsoft’s hybrid platform. I'm also skilled with Microsoft O365, Azure ADDS, and Windows Server environments from 2003 through 2022.

My strengths include Microsoft network infrastructure, VMware platforms, CMMS, ERP systems, and server administration (2016/2022).