| Previous | Next |
| SL_E_NONGENUINE_GRACE_TIME_EXPIRED | SL_E_NONGENUINE_GRACE_TIME_EXPIRED_2 |
SL_E_DEPENDENT_PROPERTY_NOT_SET
The stage that stopped
SL_E_DEPENDENT_PROPERTY_NOT_SET is HRESULT 0xC004F066. It belongs to the local Software Protection Platform. Its narrow boundary is: a property is being written before the license property it depends on has been established.
AllStat records “The Software Licensing Service reported that the genuine information property can not be set before dependent property been set” for this HRESULT. That identifies the official outcome; the additional value is the producing object, evidence set, nearby conditions and safe verification path.
Why the producing layer matters
| Stage | Role for this HRESULT |
|---|---|
| Product instance | Application ID and Activation ID identify the exact licensed object. |
| License inputs | Packages, dependencies, signatures and policies feeding this result are loaded for that object. |
| Requested transition | The right, property, event, plug-in or service operation that returns this result is evaluated. |
| Commit or status | The intended state cannot be trusted or committed while this result remains unresolved. |
A later unlicensed, notification or grace-state message describes a consequence. Preserve the earliest event carrying this HRESULT for the same product object or service request.
What the constant itself tells you
- The result is local to Software Protection Platform and should be tied to one product object, not the computer in general.
- the failure concerns typed metadata attached to a key or license object.
- The suffix names the object or transition to inspect before any broad activation reset.
- Its HRESULT severity is failure; later status messages can describe only the resulting state.
Evidence that avoids a false diagnosis
| Evidence | Question answered |
|---|---|
| Application ID, Activation ID and product name | For this HRESULT: Which Application ID and Activation ID returned the code? |
| LicenseStatus, LicenseStatusReason and grace values | For this HRESULT: Was the failure during package load, policy evaluation, authorization or service maintenance? |
| first API/slmgr method and earliest Security-SPP event | For this HRESULT: Is the named object absent, invalid, mismatched, duplicated or in the wrong lifecycle state? |
| property key, expected type and supplied type | For this HRESULT: Can caller identity and elevation be captured before changing state? |
| caller identity and elevation | For this HRESULT: Does the evidence support “set properties in the documented dependency order through the supported API” rather than a missing unrelated key/value or a read-only property? |
Redact full keys, activation blobs, account tokens, private certificate material and raw hardware identifiers. Partial keys, hashes, IDs and UTC timestamps retain correlation value without publishing secrets.
Diagnostic sequence
- Prove the distinction between the named boundary and a missing unrelated key/value or a read-only property before remediation.
- After one supported change, repeat the same operation and compare state, events and response correlation for this HRESULT.
- Bind this result to the exact Application ID, Activation ID, edition and partial key.
- Record
0xC004F066, UTC time, caller and the first method or server request that returned it. - Capture caller identity and elevation specifically for this HRESULT.
REM Evidence context: SL_E_DEPENDENT_PROPERTY_NOT_SET
cscript %windir%\system32\slmgr.vbs /dlv
powershell -NoProfile -Command "Get-CimInstance SoftwareLicensingProduct | Where-Object PartialProductKey | Select Name,ApplicationID,ID,LicenseStatus,LicenseStatusReason,PartialProductKey"
Use the status output as evidence. Run an activation retry only after the collected state supports the identified prerequisite; blind retries can add quota, throttle or cleanup noise.
Important distinctions
| Result | Different condition |
|---|---|
SL_E_ISSUANCE_LICENSE_NOT_INSTALLED | a required issuance license is not installed for the requested entitlement workflow |
SL_E_OPERATION_NOT_ALLOWED | the operation is recognized but forbidden by current license, policy or object state |
SL_E_INVALID_PACKAGE_VERSION | the package version is not accepted by this Software Protection Platform build |
A focused reproduction for this exact result
| Control | Design |
|---|---|
| Failing fixture | A caller sets genuine-information output before its prerequisite property. |
| Single variable | Change only property identity, declared type and supplied value. |
| Positive control | A schema-defined property accepts a value of the declared type. |
| Different result | If the experiment instead proves “a required issuance license is not installed for the requested entitlement workflow”, follow that neighboring boundary rather than treating it as it. |
This controlled comparison is stronger than a broad reset because it changes one prerequisite and leaves product identity, evidence source and observation method stable.
Fix the prerequisite, then verify
A supported correction is to set properties in the documented dependency order through the supported API. A representative incident is a caller sets genuine-information output before its prerequisite property.
Changes that make this code harder to diagnose
- avoid copying license packages or protected stores from another computer; it changes evidence without proving the named boundary.
- avoid force-deleting policy, plug-in or license files while sppsvc owns them; it changes evidence without proving the named boundary.
- avoid using rearm or key replacement as a universal package/policy repair; it changes evidence without proving the named boundary.
Technical references
- Slmgr.vbs options — official reference for the mechanism surrounding it.
- Troubleshoot Windows activation error codes
- MS-ERREF Windows Error Codes
- SoftwareLicensingProduct WMI class
Looking for a different code? Search another status or error code.
