About the VSS_E_BAD_STATE snapshot error

Explanation: A snapshot job has failed with an error VSS_E_BAD_STATE error.

The Enterprise Vault agent can cause a snapshot job to fail with a status code 156 error. This status code indicates that a snapshot job has failed with an error VSS_E_BAD_STATE and if it is not corrected, subsequent snapshot jobs fail.

If the VSS_E_BAD_STATE error occurs a message similar to the following appears in the bpfis log file:

onlfi_vfms_logf: snapshot services: vss: "IVssBackupComponents::DoSnapshotSet" failed with error "VSS_E_BAD_STATE:(error value=0x80042301)" while trying to commit snapshot set {AF8C691F-4111-46B2-A538-DE7F2670915A}

Perform the following to reset the Microsoft Volume Shadow Copy Service (VSS) writer states and to ensure that future snapshot jobs are successful.

To reset the Microsoft Volume Shadow Copy Service (VSS) writer states

  1. Run services.msc.

  2. Ensure that the MS Software Shadow Copy Provider service's Startup type is set to Manual.

  3. Ensure that the Volume Shadow Copy service's Startup type is set to Manual.

  4. Run cmd.exe.

  5. From the command line, run vssadmin list writers.

    This command shows you the state of the VSS writers. If any of them are in a bad state (a state other than Stable) then you must manually reset the writer's state.

  6. Reset the VSS writer states by running the following commands from the command line:

    net stop swprv

    cd %SystemRoot%\system32

    regsvr32 ole32.dll

    net stop vss

    regsvr32 oleaut32.dll

    regsvr32 vss_ps.dll

    vssvc /Register

    regsvr32 /i swprv.dll

    regsvr32 /i eventcls.dll

    regsvr32 es.dll

    regsvr32 stdprov.dll

    regsvr32 msxml.dll

    regsvr32 msxml2.dll

    regsvr32 msxml3.dll

    regsvr32 msxml6.dll

    net start "COM + Event System"

    Note:

    Verify that the msxml6.dll or msxml6r.dll files are in the system32 directory. If they are not present in the directory, then run the Windows update to get the .dll files. Finally, run the regsvr32 command again for these DLLs after you have verified that they are in your system32 directory.

  7. If you are on a Windows 2003 system, run the command, regsvr32 vssui.dll from the command line. If your computer is not running Windows 2003, then you can skip this step.

  8. Reboot your computer.

    After you restart the computer you should run the following commands:

    • C:\> vssadmin list writers

    • To make sure that all VSS writers are in stable state.

    • C:\> vssadmin list shadows

      The result of this command should show no existing shadow copies.