| Previous | Next |
| SL_E_NOT_EVALUATED | SL_E_INVALID_GUID |
SL_E_NOT_ACTIVATED
What Windows has already determined
Interpret SL_E_NOT_ACTIVATED inside license state, grace and validity, not as a generic activation failure. Windows has reached 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; in this case, the targeted license instance has not completed an activation method that places it in the Licensed state.
Record both this result and 0xC004E005. Licensing wrappers often preserve only a friendly message, but the facility value is what separates key, KMS, certificate, offline, OEM, Store, and state-machine failures.
How to test the failing stage
- Begin with the operation that emitted this result and its target Activation ID.
- Inventory Activation ID, LicenseStatus, LicenseStatusReason, GracePeriodRemaining, EvaluationEndDate, GenuineStatus, trusted time and hardware binding; this establishes whether the request was aimed at the intended product and activation channel.
- Use events and tool output to demonstrate: identify the exact Activation ID, LicenseStatusReason, key channel, last activation attempt and configured method.
- Rule out the adjacent case: not activated is a state summary; the preceding KMS, key, server, OEM, token or network result contains the actionable cause.
- After the targeted fix, verify both the immediate HRESULT and the persistent licensing state after service restart or reboot when relevant.
The surrounding licensing model prevents two common misdiagnoses. 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. 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.
A useful diagnostic record
To verify this, identify the exact Activation ID, LicenseStatusReason, key channel, last activation attempt and configured method. Before changing the system, add the following context:
- Product identity: GracePeriodRemaining and EvaluationEndDate.
- Activation context: trusted time and recent time-service events.
- State at failure: hardware or firmware changes affecting binding.
- Correlation evidence: activation channel, partial product key and last successful activation/renewal.
- Change history: LicenseStatus and LicenseStatusReason for the exact Activation ID.
Recommended handling
Resolve this code at its producing layer: run one appropriate activation attempt, preserve its exact error, and repair that producing layer. A successful command is not enough by itself; verify the stored licensing state and any renewal, validity, or binding data affected by the operation.
Representative failure: A health check queries a product instance that has a key installed but no successful activation.
Nearby results that require a different response
| Result | Different condition |
|---|---|
SL_E_GRACE_TIME_EXPIRED | Different condition: the applicable activation grace interval has reached zero without the license reaching an accepted activated state. |
SL_E_OUT_OF_TOLERANCE | Different condition: the current hardware identity differs from the licensed binding beyond the allowed tolerance. |
SL_E_VALIDITY_TIME_EXPIRED | Different condition: the license’s validity time check has expired at evaluation. |
The comparison is also useful for tests: each branch should have a fixture that produces its own HRESULT and verifies the expected persistent licensing state.
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.
Verification after the change
After remediation, repeat the original operation rather than relying on the absence of a notification banner. Confirm that it is no longer produced and that the intended product instance reports the expected durable licensing state.
Technical references
- SoftwareLicensingProduct WMI class — Microsoft guidance for the activation mechanism represented by this HRESULT.
- WMI properties for volume activation — platform behavior relevant to this HRESULT.
- Slmgr.vbs activation options — diagnostic and operational context.
- Microsoft activation error-code troubleshooting — supported tools and state fields used to verify the resulting state.
Looking for a different code? Search another status or error code.
