| Previous | Next |
| SL_E_CHPA_PRODUCT_KEY_BEING_USED | SL_E_CHPA_FAILED_TO_UPDATE_PRODUCT_KEY_RECORD |
SL_E_CHPA_FAILED_TO_INSERT_PRODUCT_KEY_RECORD
How to interpret this HRESULT
When SL_E_CHPA_FAILED_TO_INSERT_PRODUCT_KEY_RECORD returns 0xC004C780, diagnosis has reached the CHPA activation-server workflow. The decisive condition is: the server cannot create the primary product-key record.
This result comes from activation-service processing after request construction. The useful distinction is whether a business rule, schema field, key record or persistence operation failed. The code is not interchangeable with failure to add a child property or binding after the record exists.
AllStat records “The activation server reported that it failed to insert product key record” for this HRESULT. That identifies the official outcome; the additional value is the producing object, evidence set, nearby conditions and safe verification path.
Relevant processing model
| Stage | Role for this HRESULT |
|---|---|
| CHPA input | The server receives a key-management or activation payload with business-rule inputs. |
| Schema and rule evaluation | Key type, properties, bindings and program rules are validated before the operation can commit. |
| Persistent operation | Insert, update, delete or lookup state is part of the producing boundary for this HRESULT. |
| Server response | The client sees this result after CHPA rejects or cannot persist the requested change. |
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
| Signal | Interpretation |
|---|---|
| Family | The CHPA prefix places the result in server business-rule or product-key data processing. |
| Object | The named operation began but could not complete or commit. |
| Operation | Creation of a new server-side record or child object failed. |
| State | Product/key identity must remain tied to the exact SKU and Activation ID. |
| Scope | The primary persistent product-key object is involved. |
What to collect first
| Evidence | Question answered |
|---|---|
| activation request ID and CHPA/server timestamp | For this HRESULT: Which CHPA entity was being inserted, updated, deleted or queried? |
| product-key record identity and key type | For this HRESULT: Did schema validation finish before persistence was attempted? |
| business-rule name or server operation | For this HRESULT: Is another transaction using the same product-key record? |
| record key, insert/update intent and concurrency version | For this HRESULT: Can caller identity and elevation be captured before changing state? |
| caller identity and elevation | For this HRESULT: Does the evidence support “check required key metadata, uniqueness and server persistence health” rather than failure to add a child property or binding after the record exists? |
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.
Checks in a useful order
- Capture record key, insert/update intent and concurrency version specifically for this HRESULT.
- Prove the distinction between the named boundary and failure to add a child property or binding after the record exists 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
0xC004C780, UTC time, caller and the first method or server request that returned it.
REM Evidence context: SL_E_CHPA_FAILED_TO_INSERT_PRODUCT_KEY_RECORD
cscript %windir%\system32\slmgr.vbs /dlv
cscript %windir%\system32\slmgr.vbs /ato
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.
Keep neighboring codes separate
| Result | Different condition |
|---|---|
SL_E_CHPA_FAILED_TO_UPDATE_PRODUCT_KEY_RECORD | the server cannot commit changes to the primary product-key record |
SL_E_CHPA_PRODUCT_KEY_BEING_USED | another server-side operation or user currently owns the product-key record needed by this request |
SL_E_CHPA_UNKNOWN_PRODUCT_KEY_TYPE | the server does not recognize the product-key type named by the request or stored record |
A focused reproduction for this exact result
| Control | Design |
|---|---|
| Failing fixture | An import attempts to create a duplicate primary key record. |
| Single variable | Change only absence of the target object plus uniqueness of its proposed identity. |
| Positive control | A clean transaction creates one new object with all required parent data present. |
| Different result | If the experiment instead proves “the server cannot commit changes to the primary product-key record”, follow that neighboring boundary rather than treating it as this result. |
This controlled comparison is stronger than a broad reset because it changes one prerequisite and leaves product identity, evidence source and observation method stable.
Safe recovery direction
A supported correction is to check required key metadata, uniqueness and server persistence health. A representative incident is an import attempts to create a duplicate primary key record.
Changes that make this code harder to diagnose
- avoid treating a failed database operation as a client connectivity problem; it changes evidence without proving the named boundary.
- avoid launching parallel requests against the same key record; it changes evidence without proving the named boundary.
- avoid editing server XML or properties without preserving the rejected payload; it changes evidence without proving the named boundary.
Technical references
- Plan for volume activation clients — official reference for the mechanism surrounding it.
- Windows activation error help
- MS-ERREF Windows Error Codes
- Troubleshoot Windows activation error codes
Looking for a different code? Search another status or error code.