VSS CreateTimeout and the Persistence of a Typo

I’ve got a recurring VSS warning 8229 on a Server 2016 machine:  “A VSS writer has rejected an event with error 0x800423f2, The writer’s timeout expired between the Freeze and Thaw events.”

Google has taken me to several articles (1 2 3 4) recommending that I increase the VSS timeout by setting a registry key.

The earliest advice I can find is in a post from danma_ on August 1, 2011 https://social.technet.microsoft.com/Forums/en-US/965ab2a1-45ee-4e0d-bb65-b3a376af2039/windows-2008-r2-hyperv-backup-fails-vss-error-2155348001?forum=windowsbackup:

Resolution:

– Run regedit.exe and navigate to “HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SPP”

– Create a new Registry value of type DWORD with name “CreateTimeout”

– Change value to 12000000(2*10*60*1000 = 20 mins) in decimal

http://blogs.technet.com/b/asiasupp/archive/2011/08/01/windows-server-backup-failed-to-backup-with-error-0x81000101.aspx

The last link, originally a blog post created by danma, is now available as https://learn.microsoft.com/en-us/archive/blogs/asiasupp/windows-server-backup-failed-to-backup-with-error-0x81000101

That article refers to a TechNet blog post for more information. That post (captured June 2, 2010) mentions that SPP means “Shared Protection Point”, but doesn’t mention the CreateTimeout value.

Do the Math

I can’t find any official documentation on the CreateTimeout value. From the 60 and 1000 multipliers, I infer that it’s in milliseconds. But as a couple of people pointed out on the first thread, the math doesn’t add up.

The original post, and all subsequent copies, say “Change value to 12000000 (2*10*60*1000 = 20 mins)”. But with six zeros, 12,000,000 milliseconds = 12,000 seconds = 200 minutes, so you would be giving VSS 3.3 hours to finish its operation.

If the intent is in fact 20 minutes, the value should be set to 2*10*60*1000 = 1,200,000 = 1200000 (with five zeros). This should do it:

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SPP" /v CreateTimeout /t REG_DWORD /d 1200000

Note that the /f (force) parameter is missing; this will only work if the value doesn’t exist yet.

Congrats to n-Able for getting the math correct tin their Cove Data Protection article.

Update May 31, 2023 Atera has updated their article to reflect the correct value.

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.