Skip to main content

Snapshot operation failed because VSS writers were in a bad state

The issue

  • ExtensionFailedVssWriterInBadState
  • ExtensionFailedVssServiceInBadState

The Azure snapshot failed because there was an issue with the VSS Writers.

The Solution

Manually checking

To manually check the VSS writer that has failed, open CMD prompt as administrator and issue the following command: vssadmin list writers. Match the service against the below table, and cnce you've found the service, go ahead and restart it.

Got a service failing to start? Have you checked the C:\ drive of the computer to make sure it's not full?

Match this

VSS WriterService Name
ASR WriterVSS
BITS WriterBITS
Certificate AuthorityEventSystem
COM+ REGDB WriterVSS
Dedup Writer'ddpvssvc
DFS Replication service writerDFSR
DHCP Jet WriterDHCPServer
FRS WriterNtFrs
FSRM writersrmsvc
IIS Config WriterAppHostSvc
IIS Metabase WriterIISADMIN
Microsoft Exchange Replica WriterMSExchangeRepl
Microsoft Exchange WriterMSExchangeIS
Microsoft Hyper-V VSS Writervmms
MSMQ Writer (MSMQ)MSMQ
MSSearch Service WriterWSearch
NPS VSS WriterEventSystem
NTDSNTDS
OSearch VSS WriterOSearch
OSearch14 VSS WriterOSearch14
OSearch15 VSS WriterOSearch15
Registry WriterVSS
Shadow Copy Optimization WriterVSS
SharePoint Services WriterSPWriter
SMS WriterSMS_SITE_VSS_WRITER
SPSearch VSS WriterSPSearch
SPSearch4 VSS WriterSPSearch4
SqlServerWriterSQLWriter
System WriterCryptSvc
TermServLicensingTermServLicensing
WDS VSS WriterWDSServer
WIDWriterWIDWriter
WINS Jet WriterWINS
WMI WriterWinmgmt

Fancy a script?

function Restart-VssWriters {
$Status = 'Failed', 'Waiting for completion', 'Timed out'
$vss = VSSAdmin list writers | Select-String -Pattern 'Writer name:' -Context 0, 4
foreach ($writer in $vss) {
$obj = @()
$obj += New-Object PSObject -Property @{
Name = $writer.Line -replace "^(.*?): " -replace "'"
State = $writer.Context.PostContext[2] -replace "^(.*?): \[.\]."
LastError = $writer.Context.PostContext[3] -replace "^(.*?): "
}

if($obj.State -like *$Status*) {
Switch ($obj.Name) {
'ASR Writer' { $Service = 'VSS' }
'BITS Writer' { $Service = 'BITS' }
'Certificate Authority' { $Service = 'EventSystem' }
'COM+ REGDB Writer' { $Service = 'VSS' }
'Dedup Writer' { $Service = 'ddpvssvc' }
'DFS Replication service writer' { $Service = 'DFSR' }
'DHCP Jet Writer' { $Service = 'DHCPServer' }
'FRS Writer' { $Service = 'NtFrs' }
'FSRM writer' { $Service = 'srmsvc' }
'IIS Config Writer' { $Service = 'AppHostSvc' }
'IIS Metabase Writer' { $Service = 'IISADMIN' }
'Microsoft Exchange Replica Writer' { $Service = 'MSExchangeRepl' }
'Microsoft Exchange Writer' { $Service = 'MSExchangeIS' }
'Microsoft Hyper-V VSS Writer' { $Service = 'vmms' }
'MSMQ Writer (MSMQ)' { $Service = 'MSMQ' }
'MSSearch Service Writer' { $Service = 'WSearch' }
'NPS VSS Writer' { $Service = 'EventSystem' }
'NTDS' { $Service = 'NTDS' }
'OSearch VSS Writer' { $Service = 'OSearch' }
'OSearch14 VSS Writer' { $Service = 'OSearch14' }
'OSearch15 VSS Writer' { $Service = 'OSearch15' }
'Registry Writer' { $Service = 'VSS' }
'Shadow Copy Optimization Writer' { $Service = 'VSS' }
'SharePoint Services Writer' { $Service = 'SPWriter' }
'SMS Writer' { $Service = 'SMS_SITE_VSS_WRITER' }
'SPSearch VSS Writer' { $Service = 'SPSearch' }
'SPSearch4 VSS Writer' { $Service = 'SPSearch4' }
'SqlServerWriter' { $Service = 'SQLWriter' }
'System Writer' { $Service = 'CryptSvc' }
'TermServLicensing' { $Service = 'TermServLicensing' }
'WDS VSS Writer' { $Service = 'WDSServer' }
'WIDWriter' { $Service = 'WIDWriter' }
'WINS Jet Writer' { $Service = 'WINS' }
'WMI Writer' { $Service = 'Winmgmt' }
Default { $Service = $null }
}
Write-Host "Restarting:" $obj.Name
Restart-Service -Name $Service -Force
} else {
$obj
}
}
}
cls
Restart-VssWriters