| Previous | Next |
| SL_E_EVENT_NOT_REGISTERED | SL_E_DECRYPTION_LICENSES_NOT_AVAILABLE |
SL_E_EVENT_ALREADY_REGISTERED
Where this result is produced
SL_E_EVENT_ALREADY_REGISTERED is HRESULT 0xC004F01B. It belongs to the local Software Protection Platform. Its narrow boundary is: the event ID is already registered in the relevant licensing context.
Windows reports “The Software Licensing Service reported that the event ID is already registered”.
Minimum diagnostic record
| event ID, registering component and lifecycle action | Can caller identity and elevation be captured before changing state? |
| Code-specific distinction | Does the evidence support “reuse or explicitly release the existing registration instead of creating duplicates” rather than a distinct listener receiving the same product-state notification? |
How to reproduce the same condition
- Capture event ID, registering component and lifecycle action.
- Before remediation, confirm that the failure is not instead the neighboring condition: a distinct listener receiving the same product-state notification.
- Record
0xC004F01B, UTC time, caller and the first method or server request that returned it.
REM Evidence context: SL_E_EVENT_ALREADY_REGISTERED
cscript %windir%\system32\slmgr.vbs /dlv
powershell -NoProfile -Command "Get-CimInstance SoftwareLicensingProduct | Where-Object PartialProductKey | Select Name,ApplicationID,ID,LicenseStatus,LicenseStatusReason,PartialProductKey"
Do not merge these conditions
| Result | Different condition |
|---|---|
SL_E_EVENT_NOT_REGISTERED | the requested licensing event ID is valid but no listener/registration exists |
SL_E_DECRYPTION_LICENSES_NOT_AVAILABLE | the licenses required to decrypt or interpret protected licensing data are absent |
SL_E_INVALID_EVENT_ID | the caller supplies an event identifier outside the service’s registered event contract |
A focused reproduction for this exact result
| Control | Design |
|---|---|
| Failing fixture | Component initialization runs twice without cleaning the first subscription. |
| Single variable | Change only event identifier and registration lifecycle in one service instance. |
| Positive control | Registration, use and cleanup occur once in the documented order. |
| Different result | If the experiment instead proves “the requested licensing event ID is valid but no listener/registration exists”, diagnose that condition separately rather than treating it as this HRESULT. |
Recovery without broad resets
To correct this using supported mechanisms, reuse or explicitly release the existing registration instead of creating duplicates. A representative incident is component initialization runs twice without cleaning the first subscription.
Changes that make this code harder to diagnose
- Avoid copying license packages or protected stores from another computer; it changes evidence without proving the cause of this HRESULT.
- Avoid force-deleting policy, plug-in or license files while sppsvc owns them; it changes evidence without proving the cause of this HRESULT.
- Avoid using rearm or key replacement as a universal package/policy repair; it changes evidence without proving the cause of this HRESULT.
Technical references
- SoftwareLicensingProduct WMI class.
- SoftwareLicensingService WMI class
- WMI properties and methods for volume activation
- Slmgr.vbs options
Looking for a different code? Search another status or error code.