What does HRESULT 0xC004F029 (SL_E_INVALID_RUNNING_MODE) mean?

 
Previous Next
SL_E_POLICY_CACHE_INVALID SL_E_SLP_NOT_SIGNED

SL_E_INVALID_RUNNING_MODE

The exact failure point

HRESULT 0xC004F029 is exposed as SL_E_INVALID_RUNNING_MODE by the local Software Protection Platform. The code says more than the friendly message: the Software Protection service is being started or used in an OS mode that does not support this operation.

A local licensing operation can fail while loading a package, verifying a signature, resolving policy, authorizing a right, registering an event or changing service state. Each boundary is narrower than the final activation status shown in Settings. The code is not interchangeable with the service stopping or already running in a supported mode.

Windows reports “The Software Licensing Service cannot be started in the current OS mode”.

How the request reaches this stage

StageRole
Product instanceApplication ID and Activation ID identify the exact licensed object.
License inputsPackages, dependencies, signatures and policies feeding this result are loaded for that object.
Requested transitionRecord the exact licensing operation that returned this HRESULT.
Commit or statusDo not infer the intended licensing state from outputs produced by the failed operation.

What the constant itself tells you

  • The code comes from Software Protection Platform; correlate it with one product object rather than the computer as a whole.
  • validation rejected the named object; it was present but not acceptable.
  • Use the exact HRESULT and first failing operation before attempting a broad activation reset.
  • Its HRESULT severity is failure; later status messages can describe only the resulting state.

Inputs worth preserving

EvidenceQuestion answered
Application ID, Activation ID and product nameWhich Application ID and Activation ID returned the code?
LicenseStatus, LicenseStatusReason and grace valuesWas the failure during package load, policy evaluation, authorization or service maintenance?
first API/slmgr method and earliest Security-SPP eventIs the named object absent, invalid, mismatched, duplicated or in the wrong lifecycle state?
sppsvc state, boot session and concurrent maintenanceCan caller identity and elevation be captured before changing state?
caller identity and elevationWhich account and token performed the operation, and was the required elevation present?
Code-specific distinctionDoes the evidence support “record Safe Mode/WinPE/audit setup context and perform the operation in normal supported Windows” rather than the service stopping or already running in a supported mode?

Triage without destroying evidence

  1. Capture sppsvc state, boot session and concurrent maintenance.
  2. Before remediation, confirm that the failure is not instead the neighboring condition: the service stopping or already running in a supported mode.
  3. Record 0xC004F029, UTC time, caller and the first method or server request that returned it.
REM Evidence context: SL_E_INVALID_RUNNING_MODE
cscript %windir%\system32\slmgr.vbs /dlv
powershell -NoProfile -Command "Get-CimInstance SoftwareLicensingProduct | Where-Object PartialProductKey | Select Name,ApplicationID,ID,LicenseStatus,LicenseStatusReason,PartialProductKey"

Results that require different fixes

ResultDifferent condition
SL_E_POLICY_CACHE_INVALIDthe compiled or cached licensing policy cannot be trusted or parsed
SL_E_SLP_NOT_SIGNEDthe license or SLP artifact is expected to be signed but no acceptable signature is present
SL_E_TAMPER_DETECTEDthe local licensing platform detects modification of protected license state or components

A focused reproduction for this exact result

ControlDesign
Failing fixtureActivation tooling is run from an unsupported recovery or setup phase.
Single variableChange only sppsvc lifecycle state at the instant of the operation.
Positive controlThe operation runs in its required stable service state without force termination.
Different resultIf the experiment instead proves “the compiled or cached licensing policy cannot be trusted or parsed”, diagnose that condition separately rather than treating it as this HRESULT.

Supported correction and proof

A supported correction is to record Safe Mode/WinPE/audit setup context and perform the operation in normal supported Windows.

Changes that make this code harder to diagnose

  • Avoid force-deleting policy, plug-in or license files while sppsvc owns them.
  • Avoid using rearm or key replacement as a universal package/policy repair.
  • Avoid copying license packages or protected stores from another computer.

Technical references


Looking for a different code? Search another status or error code.