Why This Error Happens
Error 3143 occurs when SQL Server reads the header of a backup device and determines that the data does not conform to the Microsoft Tape Format (MTF) used for SQL Server backups. This typically happens because the file is corrupted, truncated, or was never a valid backup (e.g., a renamed .bak extension on a non-backup file). It can also occur if the backup file was transferred between systems using an FTP client in ASCII mode instead of binary mode, altering byte sequences, or if the backup spans multiple files and one volume is missing or out of order.
Step-by-Step Resolution Guide
Step 1: Verify the File Integrity and Origin
- Confirm the file was not renamed manually; check the actual file type using a hex editor or the
filecommand equivalent on Windows. - Check the file size against the expected backup size — a size of 0 KB or unusually small size indicates a failed or incomplete backup copy.
- If the file was moved via FTP, re-transfer it using Binary Mode, not ASCII mode, as ASCII transfers corrupt binary backup files.
Step 2: Validate the Backup Set Using T-SQL
- Open SQL Server Management Studio (SSMS) and run the following command to inspect the header without restoring:
RESTORE HEADERONLY
FROM DISK = 'C:\Backups\YourFile.bak'
- If this command also fails with Error 3143, the file is confirmed corrupt or invalid, and Step 3 is required.
- If the backup consists of multiple striped files, ensure all files are specified in the
FROM DISKclause in the correct order.
Step 3: Check for Multi-File Backup Sets
- If the backup was striped across multiple devices (e.g.,
.bak1,.bak2,.bak3), ensure all parts are present in the same directory. - Run the restore command listing every file:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\File1.bak',
DISK = 'C:\Backups\File2.bak'
- Missing even one stripe file will trigger Error 3143 because the header metadata is incomplete.
Step 4: Re-generate the Backup File
- If the original backup is unrecoverable, connect to the source server and generate a fresh backup using the native client:
BACKUP DATABASE [YourDB]
TO DISK = 'C:\Backups\NewFile.bak'
WITH INIT, COMPRESSION
- Transfer this new file to the target Windows Server 2025 machine using a reliable method like Robocopy or direct network share access rather than removable media or email attachments, which often corrupt large binary files.
Alternative or Verification Steps
- Verification: Run
RESTORE VERIFYONLY FROM DISK = 'C:\Backups\YourFile.bak'after obtaining the new file; a successful response reading “The backup set is valid” confirms the fix. - Alternative: If physical media (tape/USB) is suspected to be faulty, copy the file to a different physical disk (SSD/HDD) on the Windows 11 or Server 2025 machine first, then attempt the restore from the local C: drive to rule out network latency or driver-related read errors.