What does HRESULT 0x4004FC04 (SL_I_TIMEBASED_VALIDITY_PERIOD) mean?

 
Previous Next
SL_I_STORE_BASED_ACTIVATION SL_I_PERPETUAL_OOB_GRACE_PERIOD

SL_I_TIMEBASED_VALIDITY_PERIOD

What the licensing code means

SL_I_TIMEBASED_VALIDITY_PERIOD identifies a specific point in license state, grace and validity: the Software Protection Platform state machine that evaluates whether a license is active, in a grace or validity interval, out of tolerance, expired, non-genuine, or in notification. Its diagnostic consequence is that the license is currently valid only within its configured time-based validity interval.

The stored HRESULT is 0x4004FC04. Keep that value, the symbolic name, and the target Activation ID together; converting it to a generic “Windows is not activated” status discards the stage that selected the next diagnostic step.

This result should be read against these rules: Informational licensing HRESULTs can describe a valid grace or time-based state even though the value is not S_OK; callers should inspect severity and state rather than treating every nonzero code as failure. Grace expiration, validity expiration, hardware out-of-tolerance, non-genuine state, and notification mode have different causes and transitions even when the user sees a similar activation banner.

Signals that separate this case from its neighbors

Record EvaluationEndDate or validity boundary, trusted time, Activation ID, license type and remaining interval. Before changing the system, add the following context:

  • Product identity: trusted time and recent time-service events.
  • Activation context: hardware or firmware changes affecting binding.
  • State at failure: activation channel, partial product key and last successful activation/renewal.
  • Correlation evidence: LicenseStatus and LicenseStatusReason for the exact Activation ID.
  • Change history: GracePeriodRemaining and EvaluationEndDate.

Nearby results that require a different response

ResultDifferent condition
SL_I_PERPETUAL_OOB_GRACE_PERIODRelative to this result: the licensing policy grants an out-of-box grace state without the ordinary countdown to expiry.
SL_I_TIMEBASED_EXTENDED_GRACE_PERIODRelative to this result: the product is within an extended grace interval associated with a time-based license.
SL_I_STORE_BASED_ACTIVATIONDifferent condition: the current product activation is backed by a Store-delivered license rather than a conventional installed key channel alone.

A reproducible troubleshooting path

  1. Select the exact licensing product or Activation ID that returned it; do not rely only on the first line of slmgr /dlv.
  2. Confirm the mechanism in use: the Software Protection Platform state machine that evaluates whether a license is active, in a grace or validity interval, out of tolerance, expired, non-genuine, or in notification.
  3. Prove the code-specific condition by collecting: record EvaluationEndDate or validity boundary, trusted time, Activation ID, license type and remaining interval.
  4. Apply the distinction “valid now does not imply perpetual entitlement, and it is distinct from a grace period after failure” before choosing a key, network, certificate, firmware, time, or entitlement repair.
  5. Change one relevant precondition, rerun one activation/evaluation operation, and verify the resulting LicenseStatus and LicenseStatusReason.

Do not infer the cause of it from the activation UI alone. Valid now does not imply perpetual entitlement, and it is distinct from a grace period after failure. Keep the exact HRESULT in user-facing diagnostics instead of collapsing it into a generic activation failure.

Actions that usually make this harder to diagnose

  • Avoid resetting licensing state merely to hide an expired or non-genuine condition.
  • Avoid interpreting a positive informational HRESULT as an activation failure without checking LicenseStatus.

How to correct the producing condition

The appropriate correction is to plan renewal or replacement before the validity boundary and monitor trusted time. Keep the original evidence until a subsequent status query confirms that the intended Activation ID reached the expected state.

Representative failure: A time-limited deployment is fully licensed today but has a fixed end date.

Verification after the change

Verification should include a failing fixture for “the license is currently valid only within its configured time-based validity interval” and a passing fixture after the targeted fix. Reboot or restart only when the documented mechanism requires it, and confirm that the state persists afterward.

Technical references


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