Last Updated: April 2026
Quick Answer
An Exchange database that won't mount after shutdown is almost always in a dirty shutdown state, caused by one of four JET (Extensible Storage Engine) errors:
- -1018 → Database corruption (checksum mismatch)
- -1022 → Disk I/O failure
- 528 → Missing transaction logs
- 548 → Log file mismatch
Golden Rule: Never run
eseutil /pbefore identifying the exact error. This can permanently delete mailbox data.
Applies To
- Microsoft Exchange Server 2013
- Microsoft Exchange Server 2016
- Microsoft Exchange Server 2019
Why Exchange Databases Fail to Mount
Microsoft Exchange uses the Extensible Storage Engine (ESE) database (.edb) with transaction logs (.log) for crash-safe operations.
How it works:
- Data is written to logs first
- Then committed to the database
- Ensures recovery after failure
What causes failure:
- Power outage
- OS crash
- Storage disconnection
- Forced service stop
According to Microsoft: According to Microsoft Exchange documentation on database corruption
Step 1: Check Database State
Run eseutil /mh to determine the current database state:
eseutil /mh DBPath.edb
| State | Meaning | Action |
|---|---|---|
| Clean Shutdown | Safe | Mount database |
| Dirty Shutdown | Inconsistent | Continue diagnosis |
The 4-Layer Failure Model
Every Exchange mount failure belongs to one of four layers:
| Layer | Error | Meaning |
|---|---|---|
| Data Layer | -1018 | Database corruption |
| Storage Layer | -1022 | Disk failure |
| Log Layer | 528 | Missing logs |
| Consistency Layer | 548 | Log mismatch |
What is Jet Error -1018?
Jet error -1018 is a database corruption error caused by a checksum mismatch. It occurs when a database page is partially written, storage returns inconsistent data, or external tools modify the database.
Diagnose:
eseutil /g DBName.edb
Recovery:
| Method | Risk | When to Use |
|---|---|---|
| Restore backup | None | Best option |
eseutil /p |
High | No backup available |
| Stellar Repair for Exchange | Low | Critical recovery |
⚠️
eseutil /ppermanently deletes corrupted pages — use only as a last resort.
What is Jet Error -1022?
Jet error -1022 is a disk I/O failure caused by storage issues — not database corruption. Exchange cannot access the disk.
Diagnose: Check Event Viewer (IDs: 7, 11, 51) and run chkdsk /f /r
Recovery:
- Fix the storage problem first
- Copy database to a healthy disk
- Run
eseutil /mh
⚠️ Never run eseutil on an unstable or failing disk.
JET Error -1018: Checksum Mismatch (Detail)
Diagnose: eseutil /g DBName.edb
Recovery: Restore from backup or use eseutil /p (high risk of data loss)
JET Error -1022: Disk IO Failure (Detail)
Diagnose: Event Viewer + chkdsk
Recovery: Fix disk first, then attempt database repair
Error 528: Missing Transaction Logs
Cause: Required transaction logs are missing, breaking the recovery chain.
Common causes:
- Circular logging enabled
- Manual deletion of log files
- Antivirus quarantine
- Failed backup job
Diagnose:
eseutil /mh DBName.edb
Check the Log Required: X-Y range and verify which log files exist.
Recovery:
| Scenario | Solution |
|---|---|
| Backup exists | Restore from backup |
| Circular logging ON | Hard repair (data loss likely) |
| Partial logs missing | Stellar Repair for Exchange |
⚠️ Circular logging + crash = no full recovery possible.
Error 548: Log Signature Mismatch
Cause: Log files don't match the database signature.
Common causes:
- Mixed log files from different databases
- Improper restore operation
- DAG misconfiguration
Diagnose:
eseutil /ml logfile.log
eseutil /mh DBName.edb
Fix:
- Move mismatched logs to a backup folder
- Run
eseutil /pfollowed byeseutil /d
Diagnostic Flow
DB won't mount
→ Run: eseutil /mh
→ Dirty Shutdown?
→ Check error code:
-1018 → Database repair
-1022 → Fix disk first
528 → Restore logs
548 → Remove mismatched logs
When eseutil Is NOT Enough
- Causes data loss with
/p - Cannot recover data from dead disks
- Requires a complete log chain
- No granular mailbox recovery
Microsoft recommends using verified backups as the primary recovery method. For critical EDB corruption scenarios, Stellar Repair for Exchange provides granular mailbox-level recovery without data loss.
Prevention
- Disable circular logging
- Use UPS (Uninterruptible Power Supply)
- Monitor disk health proactively
- Test backups regularly
- Separate database and log files onto different volumes
- Use DAG (Database Availability Group) for high availability
JET Errors Summary
| Error | Cause | Fix | Risk |
|---|---|---|---|
| -1018 | Checksum corruption | Repair / Restore | High |
| -1022 | Disk I/O failure | Fix storage | High |
| 528 | Missing logs | Restore logs | High |
| 548 | Log mismatch | Rebuild / Remove logs | Medium |
FAQ
What is dirty shutdown?
An inconsistent database state where transactions were not fully written to disk before shutdown.
Is eseutil /p safe?
No. It removes corrupted data permanently and should only be used as a last resort when no backup is available.
Can the Exchange DB be repaired without data loss?
Only if a valid backup exists. Native repair tools (eseutil /p) always involve data loss.
What causes Jet error -1018?
Storage corruption, incomplete page writes, or hardware-level I/O issues.
Final Thought
Exchange failures are predictable — data loss is not. The difference between recovery and disaster is correct diagnosis.
Diagnose first. Repair second.
Top comments (0)