“Upgrade Failed” – Troubleshooting SharePoint Upgrade Failure
The “Upgrade Failed” error occurs when attempting to upgrade a SharePoint environment (e.g., migrating from SharePoint 2013 to 2016, or 2016 to 2019). The failure can be caused by database issues, missing features, orphaned sites, corrupted services, or permission errors.
This step-by-step guide will help you diagnose and resolve SharePoint upgrade failures effectively. 🚀
🔍 Step 1: Check Upgrade Logs for Detailed Errors
Before troubleshooting, review SharePoint ULS Logs and Upgrade Logs to identify the root cause.
✅ Locate SharePoint Upgrade Logs
- Navigate to:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\LOGS
(Replace16
with your SharePoint version:- SharePoint 2013 → 15
- SharePoint 2016 → 16
- SharePoint 2019 → 16
- SharePoint Online → Cloud-based logs)
- Open the latest log file and search for “Upgrade Failed” or “Error”.
✅ Check ULS Logs for More Details
Use PowerShell to extract only errors from ULS logs:
Get-SPLogLevel | Set-SPLogLevel -TraceSeverity Verbose
Merge-SPLogFile -Path "C:\UpgradeErrors.log"
- Open
C:\UpgradeErrors.log
and look for errors related to the upgrade.
🔍 Step 2: Verify SharePoint Services Are Running
If critical services are stopped, the upgrade may fail.
✅ Restart Required SharePoint Services
- Open Services.msc (
Win + R
→ typeservices.msc
→ press Enter). - Find the following services and ensure they are running:
- SharePoint Timer Service (SPTimerV4)
- SharePoint Administration Service
- SQL Server (MSSQLSERVER)
- Distributed Cache Service
- If any service is stopped, right-click → Start.
Restart IIS and SharePoint Timer Service:
iisreset /noforce
net stop SPTimerV4
net start SPTimerV4
🔍 Step 3: Run SharePoint Configuration Wizard
If the upgrade process was interrupted or partially completed, run the SharePoint Products Configuration Wizard to complete the upgrade.
✅ Steps to Run the Configuration Wizard
- Log in to the SharePoint server with an admin account.
- Open SharePoint Products Configuration Wizard:
- Press
Win + S
, typeSharePoint Products Configuration Wizard
, and run as Administrator.
- Press
- Click Next and Yes to confirm stopping IIS, Timer Service, and other components.
- Wait for the process to complete and check for any errors.
If the configuration wizard fails, proceed to the next steps.
🔍 Step 4: Check Database Health and Compatibility
A failed upgrade can be caused by database issues, such as an incompatible content database, orphaned sites, or missing schema updates.
✅ Verify Databases Are Attached and Compatible
Run the following PowerShell command to check all SharePoint databases:
Get-SPDatabase | Select DisplayName, Status
- If a database is in “NeedsUpgrade” or “Failed” state, upgrade it manually:
Upgrade-SPContentDatabase -Identity "WSS_Content"
- If any database is missing or detached, reattach it:
Mount-SPContentDatabase -Name "WSS_Content" -DatabaseServer "SQLSERVER" -WebApplication "http://yourwebapp"
✅ Fix Orphaned Sites and Missing Features
Orphaned sites and missing features can break the upgrade.
Check for orphaned sites:
Get-SPSite | Where-Object { $_.ReadOnly -eq $true }
- If found, repair them using:
Repair-SPManagedAccountDeployment
Check for missing features:
Get-SPFeature | Where-Object { $_.DefinitionID -eq "MissingFeatureID" }
- If any feature is missing, activate it:
Enable-SPFeature -Identity "FeatureName" -URL "http://yourwebapp"
- If a feature is orphaned and should be removed:
Disable-SPFeature -Identity "FeatureName" -URL "http://yourwebapp" -Confirm:$false
🔍 Step 5: Verify User Permissions
The SharePoint Farm Account and SQL Server Account must have the correct permissions.
✅ Check Farm Account Permissions
- Open SQL Server Management Studio (SSMS).
- Go to Security → Logins.
- Find the SharePoint Farm Account (e.g.,
SP_Farm
). - Ensure it has the following database roles:
- db_owner (on all SharePoint databases)
- securityadmin and dbcreator (on SQL Server)
✅ Grant Proper Permissions via PowerShell
If permissions are missing, grant them using:
New-SPManagedAccount -Credential (Get-Credential)
- Add the farm account as a managed account and restart services.
🔍 Step 6: Verify Web Applications and Site Collections
If a web application or site collection is in a corrupted state, it can cause upgrade failures.
✅ Check Web Application Status
Run the following command to list all web applications and their status:
Get-SPWebApplication | Select DisplayName, URL
- If a web application is missing, recreate it:
New-SPWebApplication -Name "WebApp1" -Port 80 -URL "http://webapp1"
✅ Check Site Collections for Errors
Get-SPSite -Limit All | Select Url, Status
- If a site collection is in ReadOnly mode, unlock it:
Set-SPSite -Identity "http://yoursite" -LockState "Unlock"
🔍 Step 7: Run SharePoint Upgrade Command
Manually trigger the upgrade to check for errors.
✅ Upgrade Content Databases
Run the following PowerShell command:
Upgrade-SPContentDatabase -Identity "WSS_Content"
✅ Upgrade SharePoint Farm
PSConfig.exe -cmd upgrade -inplace b2b -wait -force
- This command forces the upgrade process to retry failed components.
🔍 Step 8: Clear Configuration Cache and Restart Services
If the upgrade is stuck, clear the SharePoint configuration cache.
✅ Steps to Clear Config Cache
- Stop the SharePoint Timer Service (
SPTimerV4
). - Navigate to:
C:\ProgramData\Microsoft\SharePoint\Config
- Open the GUID-named folder.
- Delete all .xml files (except
Cache.ini
). - Open
Cache.ini
, change its value to 1, and save. - Restart the SPTimerV4 Service.
Restart SharePoint services:
net stop SPTimerV4
net start SPTimerV4
iisreset /noforce