| Previous | Next |
| ERROR_CANNOT_SWITCH_RUNLEVEL | ERROR_RUNLEVEL_SWITCH_TIMEOUT |
ERROR_INVALID_RUNLEVEL_SETTING
Service run level violates dependency order
ERROR_INVALID_RUNLEVEL_SETTING is Windows system result 15401 (0x00003C29). The configured service ordering cannot satisfy the dependency graph.
This result occurs when a service is assigned a run level higher than one or more services it depends on. The graph would ask the dependent service to be available outside the level in which its prerequisite is guaranteed.
Where this value belongs
- Service metadata is validated while building a run-level plan.
- An update changes a service level but not its dependencies.
- A dependency group expands to include a service at a lower level.
This is a configuration defect, not a slow service. Timeout increases cannot make an invalid dependency ordering correct.
Common interpretation mistakes
- It is mishandled when only direct dependencies are checked and a transitive violation is missed.
- It is mishandled when load-order groups are omitted from the graph.
- It is mishandled when numeric levels are compared in the wrong direction.
- It is mishandled when configuration is changed on one node but not its peers.
Troubleshooting steps
- Export every service run level and dependency.
- Build the directed dependency graph including groups.
- Find the first edge whose levels violate the rule.
- Check transitive dependencies and cycle detection.
- Compare configuration across clustered or replicated nodes.
- Validate a corrected graph before applying it.
Useful evidence
- Preserve service-to-level mapping.
- Preserve direct and transitive dependency edges.
- Preserve load-order group membership.
- Preserve configuration version and deployment source.
- Preserve validation output for the corrected graph.
It is best explained by one offending dependency edge, for example service_A level 4 depends on service_B level 3.
Correct handling and recovery
Move the dependent service to a compatible level or make its prerequisite available at the required level, then validate the complete graph.
Re-run validation after configuration changes. Repeating the switch with the same invalid graph is pointless.
Difference from nearby values
ERROR_CANNOT_SWITCH_RUNLEVEL is an overall switch failure. Code 15401 precisely identifies a run-level relationship that violates dependency ordering.
Practical scenario
An update raises a telemetry service to level 4 while its database dependency remains at level 3. Graph validation returns 15401; aligning the levels restores a valid plan.
Implementation guidance
Validate run-level configuration in deployment CI and reject changes that create cycles or inverted edges. Store the source revision with each applied mapping.
For code 15401, record runlevel_invalid_service, runlevel_service_level, runlevel_dependency, runlevel_dependency_level, and runlevel_config_revision.
References
Looking for a different code? Search another status or error code.