You reboot a cluster node, or you finish patching, and the cluster service refuses to come up. Event Viewer spits out 0X00001719, sometimes with a cluster log line that names the parameter, sometimes without. You've probably just changed something — heartbeat, SameSubnetDelay, CrossSubnetDelay, a resource's DeadlockTimeout, or a network's IgnoreNetwork setting. That's the trigger. Cluster parameters are picky, and once one value falls outside its allowed range, the Cluster Service won't start on that node at all.
I've seen this most often after someone tries to stretch a cluster across a WAN and jacks heartbeat values into the tens of thousands of milliseconds. The cluster registry accepts the write. The service then refuses to load it. Fun.
What 0X00001719 actually means
The code maps to ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS. Plain English: one of the cluster's configuration values is outside the range the Cluster Service is willing to accept. Every cluster parameter has a hard min and max baked into the binaries. If you go under the min or over the max, the service treats the config as corrupt and bails out before it comes online.
It's not a disk error. It's not a quorum problem. It's not a network outage. It's a bad number in the registry, or in the cluster database, and the service is telling you to go find it.
Common culprits:
SameSubnetDelayandSameSubnetThresholdon the cluster networkCrossSubnetDelayandCrossSubnetThresholdRouteHistoryLengthon the cluster- Resource-level
DeadlockTimeout,RestartDelay,RestartThreshold WitnessDatabaseWriteTimeouton the quorum witness
Any one of those out of range and the service stops cold.
The fix
You need to get the cluster service up on at least one node so you can use PowerShell against the cluster. If the whole thing is down, you might have to fix the value directly in the registry first. Go in this order.
-
Pull the cluster log from the node that's failing. The log usually names the offending parameter. Run this from an elevated prompt:
Get-ClusterLog -Destination C:\Temp -TimeSpan 15 -UseLocalTimeIf the service won't start, use
cluster log /gfrom an elevated cmd prompt. Open the log and search for0x1719or the stringout of bounds. The line right before it names the parameter. -
Check the obvious registry locations. Cluster parameters live under:
HKLM\Cluster\ParametersNetwork-specific values live under
HKLM\Cluster\Resources\<GUID>\Parameters. On Server 2016+ they may also be replicated in the Cluster DB and visible viaGet-ClusterParameter. Compare what's in the registry to what the cluster thinks it should be. -
Reset the parameter to a known-good value. If PowerShell connects to the cluster (even on a working node):
Get-ClusterResource | Where-Object {$_.ResourceType -eq "Network Name"} | Get-ClusterParameter -Name HostRecordTTLFor heartbeat values, do this on the cluster network object:
Get-ClusterNetwork | Format-Table Name, Role, Address Get-ClusterNetwork "Cluster Network 1" | Get-ClusterParameter SameSubnetDelay $net = Get-ClusterNetwork "Cluster Network 1" $net | Set-ClusterParameter -Name SameSubnetDelay -Value 1000 $net | Set-ClusterParameter -Name SameSubnetThreshold -Value 10That 1000/10 combo is the Microsoft default. Don't go below 500ms delay or above 20000ms. Don't set threshold to 1 — it looks smart, it isn't.
-
If the service won't start at all, edit the registry directly. Stop the Cluster Service, export the
HKLM\Cluster\Parameterskey first (don't skip the export), then fix the offending DWORD. Restart the service. If it comes up, immediately runGet-ClusterLogto confirm no related warnings. -
Validate the cluster. Don't assume it's fine because the service started.
Test-Cluster -Cluster <ClusterName> -Include "Inventory","Network","System Configuration"Fix anything red before you walk away.
What to check if it still fails
If the service still won't start, you've probably missed the parameter that's actually out of range. Cluster configs have a lot of moving parts.
- Is it the quorum witness? A misconfigured cloud witness or file share witness can throw 0x1719. Check
WitnessDatabaseWriteTimeoutand re-runSet-ClusterQuorum. - Is it a specific resource? Resource-level timeouts get inherited from the resource DLL. Pull the resource's
DeadlockTimeoutandRestartThreshold. SQL Server FCI and File Server roles are the usual suspects here. - Did someone do a rollback? If you restored the cluster DB from backup onto a newer OS build, some parameters may now be out of range for that build. Compare against a known-good cluster on the same build.
- Check the CSV or S2D layer. If it's Storage Spaces Direct, corrupt health data or a bad
FaultDomainconfig can bubble up as this error. - Look at the local node first, not the cluster. If only one node fails, the issue is often a stale local registry value that hasn't replicated. Reboot after correcting.
One more thing — don't try to be clever with heartbeat tuning. The defaults exist for a reason. If you're stretching a cluster across a WAN and need to raise thresholds, do it in small increments and validate after each change. I've cleaned up three clusters this year that were bricks because someone set SameSubnetDelay to 30000 "to be safe." It's not safe. It's out of range.
Rule of thumb: if the log names a parameter, trust the log. If it doesn't, bisect by reverting the last change you made. Nine times out of ten, the last change is the cause.