Troubleshooting Guide: SQL Server Error 3028 – Restart-Checkpoint File Corrupted
Why This Error Happens
This error occurs when SQL Server attempts to resume a previously interrupted RESTORE operation using the WITH RESTART option, but the checkpoint file it relies on to track progress has become unreadable or corrupted. This typically happens due to an abrupt termination of the previous restore process (such as a server crash, disk I/O failure, or unexpected service shutdown) before the checkpoint file could be properly flushed and closed. Antivirus interference or insufficient disk space on the volume hosting the checkpoint file can also lead to incomplete writes, resulting in this corruption.
Step-by-Step Resolution Guide
Step 1: Locate and Inspect the Restart-Checkpoint File
- Identify the exact file path referenced in the error message (
%lsplaceholder in Error 3028). - Default location is typically within the SQL Server instance’s
Backupdirectory, e.g.,C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Backup\. - Check the file’s properties and timestamp to confirm it matches the last failed restore attempt.
- Verify the file size is not 0 KB, which is a strong indicator of incomplete disk writes.
Step 2: Remove the Corrupted Checkpoint File and Restart the Restore
- Since SQL Server already indicates it will ignore the corrupted file, manually delete it to prevent future conflicts:
del "C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Backup\restart.chk". - Re-run the
RESTORE DATABASEcommand without theWITH RESTARTclause to force a fresh, full restore cycle. - Monitor the SQL Server Error Log (via SSMS or
Get-Contentin PowerShell) to confirm no further 3028 errors appear.
Step 3: Validate Disk Health and Permissions
- Run
chkdsk C: /f /ron the volume hosting the backup/checkpoint directory to rule out underlying disk corruption. - Ensure the SQL Server service account has full read/write permissions on the backup directory via File Explorer > Properties > Security tab.
- Confirm the Windows Server 2025 disk subsystem isn’t reporting I/O errors in Event Viewer > Windows Logs > System.
Step 4: Exclude the Directory from Antivirus Scanning
- Add the SQL Server
BackupandDatadirectories to the exclusion list in Windows Defender or any third-party antivirus software. - Use PowerShell to add an exclusion:
Add-MpPreference -ExclusionPath "C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Backup". - Restart the SQL Server service (
Restart-Service MSSQLSERVER) to apply the exclusion cleanly.
Alternative or Verification Steps
- Verify the fix by running the full
RESTORE DATABASE ... WITH RECOVERYcommand and confirming it completes successfully without referencing a checkpoint file. - If the issue persists across multiple attempts, use
RESTORE VERIFYONLYagainst the backup file to rule out corruption in the source.bakfile itself rather than the checkpoint mechanism.