Exchange ServerDeep dive

Exchange Server VSS backup error codes: writer states, VSS_E codes and first fixes

Look up a VSS error from an Exchange backup: 0x800423F3, 0x800423F4, 0x800423F2, 0x8004230F and other VSS_E codes, vssadmin writer states and related events, with first checks.

When an Exchange backup fails, the product's message usually hides a Volume Shadow Copy Service (VSS) code such as 0x800423F3 or a writer stuck in a failed state. This quick reference covers 30 of them: the VSS HRESULTs, the writer states and last errors that vssadmin list writers shows, and the Exchange and Windows events that go with them, each with the usual cause on Exchange Server SE, 2019 and 2016 and the first check. Press Ctrl+F and type your code.

Codes in this quick reference

  • 0x800423F3 VSS_E_WRITERERROR_RETRYABLE: the writer hit a transient error; a retry may succeedvssadmin / BETEST / backup job log
  • 0x800423F4 VSS_E_WRITERERROR_NONRETRYABLE: the writer hit an error that will probably recur on retryvssadmin / backup job log
  • 0x800423F2 VSS_E_WRITERERROR_TIMEOUT: the writer timed out between the Freeze and Thaw eventsvssadmin / backup job log
  • 0x800423F1 VSS_E_WRITERERROR_OUTOFRESOURCES: the writer ran out of memory or other system resourcesvssadmin / backup job log
  • 0x80042306 VSS_E_PROVIDER_VETO: expected provider error; the provider logged the reason in the event logBackup job log / Application log
  • 0x8004230F VSS_E_UNEXPECTED_PROVIDER_ERROR: the provider returned an error code VSS didn't expectBackup job log / Application log (VSS)
  • 0x8004230E VSS_E_VOLUME_NOT_SUPPORTED_BY_PROVIDER: the chosen provider doesn't support this volumeBackup job log
  • 0x80042312 VSS_E_MAXIMUM_NUMBER_OF_VOLUMES_REACHED: too many volumes in one shadow copy set (64 maximum)Backup job log

+ 22 more codes in the tables below.

How this guide is organised: How to read these codes → Writer errors → Provider and snapshot codes → Writer states and last errors in vssadmin → Exchange and Windows backup events → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these codes. 2. Writer errors. 3. Provider and snapshot codes. 4. Writer states and last errors in vssadmin. 5. Exchange and Windows backup events. 6. How to verify a fix. Toolbox: 0x800423F3, 0x800423F4, 0x800423F2, Get-MailboxDatabaseCopyStatus, Microsoft-Windows.1How to read these codes2Writer errors3Provider and snapshot codes4Writer states and last errors invssadmin5Exchange and Windows backupevents6How to verify a fixTOOLBOX0x800423F30x800423F40x800423F2Get-MailboxDatabaseCopyStatusMicrosoft-WindowsHow this guide is organised: How to read these codes → Writer errors → Provider and snapshot codes → Writer states and last errors in vssadmin → Exchange and Windows backup events → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these codes. 2. Writer errors. 3. Provider and snapshot codes. 4. Writer states and last errors in vssadmin. 5. Exchange and Windows backup events. 6. How to verify a fix. Toolbox: 0x800423F3, 0x800423F4, 0x800423F2, Get-MailboxDatabaseCopyStatus, Microsoft-Windows.1How to read these codes2Writer errors3Provider and snapshot codes4Writer states and last errors in vssadmin5Exchange and Windows backup events6How to verify a fixTOOLBOX0x800423F30x800423F40x800423F2Get-MailboxDatabaseCopyStatusMicrosoft-Windows
At a glance: how this guide is organised · 6 sections · 5 key settings and tools

How to read these codes#

Exchange Server supports only Exchange-aware, VSS-based backups. The backup product (the requester) asks VSS for a snapshot, the Microsoft Exchange Writer, hosted by the Microsoft Exchange Replication service (MSExchangeRepl), prepares the databases, and a provider takes the snapshot. A failure in any of the three becomes an HRESULT:

  • 0x800423F1 to 0x800423F4: writer errors: a writer (on an Exchange server, usually the Microsoft Exchange Writer) failed.
  • Other 0x800423xx codes: VSS and provider errors.
  • Negative codes such as -2402: the database engine, covered in the ESE error codes quick reference.

You'll find them in the backup job log, in vssadmin list writers (State and Last error), in Microsoft's BETEST tool (Status for writer Microsoft Exchange Writer: STABLE (0x800423f3 - VSS_E_WRITERERROR_RETRYABLE)) and in the Application log under the VSS, MSExchangeRepl and ESE sources. Some products print the Windows message text instead, such as The writer experienced a non-transient error. If the backup process is retried, the error is likely to reoccur. (0x800423F4); some log the code in decimal. Product-specific messages are in the guides for Veeam (and Veeam Explorer restores), Backup Exec and NetBackup and Commvault.

PowerShell
# Elevated prompt on the server that runs the backup (in a DAG, the passive copy's server)
vssadmin list writers | Select-String 'Microsoft Exchange Writer' -Context 0,4
vssadmin list providers
vssadmin list shadowstorage

'{0:X8}' -f 2155348129     # 807800A1  (decimal code from a log)
'{0:X8}' -f -2147212301    # 800423F3  (negative decimal)

A healthy writer looks like this before and after every job:

Text
Writer name: 'Microsoft Exchange Writer'
   Writer Id: {...}
   Writer Instance Id: {...}
   State: [1] Stable
   Last error: No error

Writer errors#

Check in vssadmin which writer failed before blaming Exchange. A writer also vetoes a snapshot set that lacks a volume it needs, so always back up each database together with its log volume. Microsoft's GetWriterStatus reference describes these four errors by name only. The hex values are the ones tools print: Microsoft's own pages show 0x800423f3 in BETEST output and 0x800423F4 in a Windows Server Backup failure, and 0x800423F1 and 0x800423F2 are shown as backup products report them.

CodeMeaningUsual causeFirst check
0x800423F3
VSS_E_WRITERERROR_RETRYABLE
The writer hit a transient error; a retry may succeedDAG passive-copy backup losing its RPC channel to the active server (network devices, security software), active and passive copies backed up at once, or a database moved mid-jobMSExchangeRepl event 2153; KeepAliveTime and QueryLogRangeTimeoutInMsec (below); job schedules. Guide
0x800423F4
VSS_E_WRITERERROR_NONRETRYABLE
The writer hit an error that will probably recur on retryA persistent problem with a selected database or the writer; Microsoft describes it as an error that may recur on the next shadow copyMSExchangeRepl and ESE errors at job time; copy health; restart MSExchangeRepl in a quiet period and retest. Guide
0x800423F2
VSS_E_WRITERERROR_TIMEOUT
The writer timed out between the Freeze and Thaw eventsThe snapshot took too long: busy or slow storage, heavy I/O during the job, a slow providerStorage latency; move the job out of busy hours; Microsoft: wait ten minutes and retry, up to three times. Guide
0x800423F1
VSS_E_WRITERERROR_OUTOFRESOURCES
The writer ran out of memory or other system resourcesMemory pressure on the server, or other heavy jobs runningMemory use of MSExchangeRepl and the server; reduce load; Microsoft: wait ten minutes and retry, up to three times

For retryable errors on passive-copy backups, Microsoft's guidance is to keep KeepAliveTime on the Exchange servers below the idle-session timeout of network devices (and above 15 minutes), back up passive copies rather than active ones, never back up both at once, avoid moving databases during the job and, for busy servers, raise the log-range query timeout from its 30-second default for better tolerance of network or performance problems:

PowerShell
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Replay\Parameters' -Name QueryLogRangeTimeoutInMsec -PropertyType DWord -Value 120000
Restart-Service MSExchangeRepl    # in a quiet period

Provider and snapshot codes#

These come from VSS or the provider. Hex values are as listed in Microsoft's AddToSnapshotSet reference, except 0x80042318 and 0x80042319, which Microsoft's pages name without a value (shown here as backup products report them). The remaining codes are listed by name only.

CodeMeaningUsual causeFirst check
0x80042306
VSS_E_PROVIDER_VETO
Expected provider error; the provider logged the reason in the event logA hardware or third-party provider failing, or one left behind by a removed productThe provider's own Application log event; vssadmin list providers; Microsoft: wait ten minutes, retry up to three times
0x8004230F
VSS_E_UNEXPECTED_PROVIDER_ERROR
The provider returned an error code VSS didn't expectA provider bug or conflictVSS and provider errors in the Application log at job time; update or remove the provider; retry as for 0x80042306
0x8004230E
VSS_E_VOLUME_NOT_SUPPORTED_BY_PROVIDER
The chosen provider doesn't support this volumeA job forced to use a hardware provider for a volume on other storageProvider setting in the job; vssadmin list providers
0x80042312
VSS_E_MAXIMUM_NUMBER_OF_VOLUMES_REACHED
Too many volumes in one shadow copy set (64 maximum)Many database and log volumes or mount points in a single jobSplit the job, keeping each database with its log volume
0x80042316
VSS_E_SNAPSHOT_SET_IN_PROGRESS
Another shadow copy creation is already in progressOverlapping jobs: two products, host- and guest-level backups, or two jobs on one serverSchedules: VSS allows one shadow copy set creation at a time
0x80042317
VSS_E_MAXIMUM_NUMBER_OF_SNAPSHOTS_REACHED
The volume is already in the maximum number of shadow copy setsShadow copies left behind by failed jobsvssadmin list shadows; delete stale copies you don't need
0x80042318
VSS_E_WRITER_INFRASTRUCTURE
VSS couldn't contact the writersCOM+ Event System or Volume Shadow Copy service not running, or broken registrationsBoth services running; vssadmin list writers must list writers
0x80042319
VSS_E_WRITER_NOT_RESPONDING
A writer didn't answer the status request: it ended or is stuckMSExchangeRepl hung, crashed or restarted during the jobMSExchangeRepl state and Application log; restart it in a quiet period
VSS_E_INSUFFICIENT_STORAGENot enough storage space for the shadow copyShadow copy storage too small, or the volume nearly fullvssadmin list shadowstorage; free space or resize; delete old shadow copies
VSS_E_FLUSH_WRITES_TIMEOUT
VSS_E_HOLD_WRITES_TIMEOUT
The system couldn't flush or hold I/O writes for the snapshotHeavy disk activity at snapshot timeMicrosoft: wait ten minutes and retry, up to three times; then move the job to a quieter window
VSS_E_UNEXPECTEDUnexpected VSS error; the code is written to the error logVaries: read the logged codeVSS errors in the Application log at job time
0x80042301
VSS_E_BAD_STATE
Calls made out of order: the requester skipped initialization or prerequisite stepsA backup agent problem rather than ExchangeUpdate the backup agent; rerun the job
VSS_E_REBOOT_REQUIREDThe provider hit an error that needs a restartA provider condition that only a restart clearsRestart in a maintenance window (DAG maintenance mode)
VSS_E_TRANSACTION_FREEZE_TIMEOUT
VSS_E_TRANSACTION_THAW_TIMEOUT
VSS couldn't freeze or thaw the DTC or the Kernel Transaction ManagerDistributed Transaction Coordinator problemsMSDTC service state and its events
0x80070005
E_ACCESSDENIED
The caller lacks backup privileges or isn't an administratorThe backup service account's rights on the Exchange serverLocal Administrators or Backup Operators membership; the product's documented Exchange permissions

Writer states and last errors in vssadmin#

vssadmin list writers prints the state number in brackets. The numbers come from Microsoft's VSS_WRITER_STATE enumeration: 6 to 15 are failure states and all display as Failed, so the number tells you which phase failed.

CodeMeaningUsual causeFirst check
State: [1] StableIdle and ready; Last error can still show the previous failureMicrosoft's own example shows Stable with Retryable errorRead Last error before retrying
State: [5] Waiting for completion
VSS_WS_WAITING_FOR_BACKUP_COMPLETE
Snapshot taken; the backup hasn't signalled completionA job still running, or one that crashed or was cancelled; logs aren't truncatedJob status; if nothing runs, restart MSExchangeRepl in a quiet period. Guide
State: [7] Failed
VSS_WS_FAILED_AT_PREPARE_BACKUP
The writer failed while preparing the backupThe writer rejected the backup request; MSExchangeRepl logs whyMSExchangeRepl events; Get-MailboxDatabaseCopyStatus
State: [8] Failed
VSS_WS_FAILED_AT_PREPARE_SNAPSHOT
The writer failed while preparing the snapshotRead with Last errorMSExchangeRepl and ESE events at job time
State: [9] Failed
VSS_WS_FAILED_AT_FREEZE
The writer failed at freezeOften paired with Timed out: the freeze lasted too longStorage latency and job timing
State: [12] Failed
VSS_WS_FAILED_AT_BACKUP_COMPLETE
The writer failed at backup completionCompletion is when Exchange truncates logs, so logs keep growingApplication log; logs not truncating
Last error: Retryable errorSame as 0x800423F3See 0x800423F3See 0x800423F3
Last error: Non-retryable errorSame as 0x800423F4See 0x800423F4See 0x800423F4
Last error: Timed outSame as 0x800423F2See 0x800423F2See 0x800423F2

Exchange and Windows backup events#

CodeMeaningUsual causeFirst check
Event ID 2153
MSExchangeRepl
The log copier was unable to communicate with server: the passive copy is disconnected from the active serverNetwork or security software interrupting the RPC channel a passive-copy backup needsNetwork path; KeepAliveTime below device idle timeouts; QueryLogRangeTimeoutInMsec
Event ID 521
Microsoft-Windows-Backup
failed as Volume Shadow copy operation failed for backup volumes with following error code '2155348129': the code is decimal (0x807800A1)A writer failed; in Microsoft's example (the SQL Server VSS writer) the backup also reports The volume shadow copy operation failed with error 0x800423F4vssadmin list writers; errors from the failing writer's source

How to verify a fix#

  1. Writer: State: [1] Stable and Last error: No error before the job, and again after it, not stuck at [5].
  2. Job: the backup completes without VSS warnings in its log.
  3. Exchange recorded it: LastFullBackup or LastIncrementalBackup shows the new time. Copy and differential backups never truncate logs, by design.
  4. Logs truncate: after a full or incremental backup the log count drops once every copy has replayed them; lagged copies keep theirs.
  5. Quiet event log: no new VSS, MSExchangeRepl or ESE errors in the job window.
  6. Control test: if the product still fails while a Windows Server Backup VSS full backup of the same volumes succeeds, look at the product's provider and settings.
PowerShell
Get-MailboxDatabase -Status | Format-Table Name,LastFullBackup,LastIncrementalBackup -AutoSize
Get-MailboxDatabaseCopyStatus * | Format-Table Name,Status,CopyQueueLength,ReplayQueueLength -AutoSize
Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName=@('VSS','MSExchangeRepl','ESE'); Level=2; StartTime=(Get-Date).AddHours(-12)} |
    Format-Table TimeCreated,ProviderName,Id -AutoSize

References#

Revision history: Oct 2026 — re-checked against Microsoft Learn and the vendors' documentation: 5 corrections; 5 details reworded or labelled as reported by admins.

Written and checked against current Microsoft Learn documentation and the vendor documentation linked in the references. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

Intune Subject Matter Expert in Cairo, Egypt, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)