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

The licensing boundary behind the code

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: for this HRESULT: 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. for this HRESULT: 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

The decisive record is to record EvaluationEndDate or validity boundary, trusted time, Activation ID, license type and remaining interval. Before changing the system for this HRESULT, add the following context:

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

When investigating this result, protect secrets while collecting evidence. Full product keys, complete IID/CID values, private keys, PINs, challenge blobs, account credentials, and unredacted certificate material for this HRESULT do not belong in public tickets. Partial keys, hashes, thumbprints, IDs, timestamps, and state transitions are normally enough to correlate the failure.

Nearby results that require a different response

ResultDifferent boundary
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_ACTIVATIONRelative to it: the current product activation is backed by a Store-delivered license rather than a conventional installed key channel alone.

When it appears with related results, order them by timestamp and Activation ID. The earliest code at the producing boundary usually carries more diagnostic value than a later summary state.

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 decisive 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. Preserve the boundary when converting the HRESULT into user-facing diagnostics.

Actions that usually make this harder to diagnose

  • While diagnosing it, avoid resetting licensing state merely to hide an expired or non-genuine condition. That action changes evidence for this HRESULT without correcting the established boundary.
  • avoid interpreting a positive informational HRESULT as an activation failure without checking LicenseStatus. The result already narrows the problem more precisely.
  • do not delete licensing stores, edit signed license files, alter firmware markers, bypass certificate checks, or use unofficial activation tools. During investigation, those actions can create a second integrity problem and destroy the evidence needed to repair the legitimate license.

How to correct the producing condition

The appropriate correction for this HRESULT 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 for this HRESULT 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 narrow correction. 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.