Troubleshooting Guide: Error 914 – Script Level Upgrade Failure in SQL Server 2025
Why This Error Happens
Error 914 occurs when SQL Server 2025 attempts to run internal upgrade scripts against system databases (most commonly master or msdb) during startup, but the process is interrupted before completion. This is typically caused by insufficient permissions on the SQL Server service account, corrupted system database files, a prior failed patch/update that left the database in an inconsistent state, or insufficient disk space preventing the upgrade script from writing changes. Since the master database controls the upgrade orchestration itself, any abort here is especially critical and can prevent the instance from starting cleanly.
Step-by-Step Resolution Guide
Step 1: Review the SQL Server Error Log for Root Cause
- Navigate to the default log path:
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG - Open the log in a text editor and search for “Error: 914” and the specific upgrade step name referenced in the message.
- Look for accompanying errors like 5172 (file header corruption), 823/824 (I/O errors), or “insufficient disk space” immediately before the abort.
- Note the exact database and script step name — this determines whether you’re dealing with
master,msdb, or a user database.
Step 2: Verify Service Account Permissions and Disk Space
- Open Services.msc, locate “SQL Server (MSSQLSERVER)”, and confirm the service account has full control over
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\. - Check available disk space on the drive hosting system databases; ensure at least 20% free space.
- Right-click the data folder, go to Properties > Security, and grant Full Control to the SQL Server service account if missing.
- Restart the SQL Server service via
services.mscor run:net stop MSSQLSERVER && net start MSSQLSERVER
Step 3: Start SQL Server in Single-User/Minimal Configuration Mode to Rerun Upgrade
- Open an elevated Command Prompt and stop the SQL Server service.
- Start the instance manually with trace flags to bypass full startup validation:
sqlservr.exe -c -m -T3608 -T902-T902skips the upgrade script temporarily, allowing you to connect via SQLCMD and inspect themasterdatabase state.- Once connected, run
DBCC CHECKDB('master') WITH NO_INFOMSGS, ALL_ERRORMSGSto check for corruption.
Step 4: Restore Master Database from a Known Good Backup (If Corrupted)
- If corruption is confirmed in Step 3, stop the instance and restore
master.mdfandmastlog.ldffrom a verified pre-upgrade backup. - Place the restored files in:
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\ - Remove the
-T902trace flag and restart the service normally to allow the upgrade script to rerun against the restored files:net start MSSQLSERVER
Alternative or Verification Steps
- After restarting normally, query
SELECT SERVERPROPERTY('ProductVersion'), SERVERPROPERTY('EngineEdition')to confirm the instance started and reports the correct upgraded build number. - If the upgrade still fails, run the SQL Server 2025 setup media with the
/ACTION=REPAIRswitch from an elevated Command Prompt to force reapplication of the upgrade scripts:Setup.exe /ACTION=REPAIR /INSTANCENAME=MSSQLSERVER /QUIET