| Previous | Next |
| CS_E_NO_CLASSSTORE | CS_E_OBJECT_ALREADY_EXISTS |
CS_E_OBJECT_NOTFOUND
There is no software installation data object in the Active Directory.
CS_E_OBJECT_NOTFOUND is the failure HRESULT 2147746153 (0x80040169, signed -2147221143) from winerror.h. AllStat defines it as “There is no software installation data object in the Active Directory.” In practical terms, a referenced software-installation object cannot be found in the directory. Interpret it in the context of following a stored object reference during package or class resolution.
The high bit in 0x80040169 is set, so this is a failure rather than a success or informational result. Its facility field is 4 (FACILITY_ITF) and its low 16-bit code is 361 (0x0169). Those bit fields classify the value, but they do not identify the failing object by themselves; the native method, object identity, and first producer of CS_E_OBJECT_NOTFOUND remain essential.
Contract boundary
Understanding CS_E_OBJECT_NOTFOUND requires this subsystem context: These CS_E values describe the legacy directory-backed COM Class Store. For CS_E_OBJECT_NOTFOUND, public documentation is limited; the exact owner is the component performing automatic installation or directory lookup, so traces must identify that component rather than assigning the HRESULT to every modern COM activation path.
- Associate
CS_E_OBJECT_NOTFOUNDwith one exact operation in automatic class installation or lookup through COM Class Store policy and directory-backed software-installation objects. - Confirm that
CS_E_OBJECT_NOTFOUNDcame from following a stored object reference during package or class resolution, rather than from cleanup or a wrapper that ran afterward. - Preserve any IErrorInfo, underlying Win32 result, provider message, or callback failure that preceded
CS_E_OBJECT_NOTFOUND; the HRESULT alone should not erase a more specific cause.
Likely cause branches
CS_E_OBJECT_NOTFOUNDcan result when the target was deleted while stale references remain.CS_E_OBJECT_NOTFOUNDcan result when the distinguished name changed during migration.CS_E_OBJECT_NOTFOUNDcan result when the contacted controller has not received the object or its tombstone state differs.
Evidence to preserve
A useful CS_E_OBJECT_NOTFOUND incident records the requested CLSID or ProgID, directory object DN, package identifier, version, deployment path, domain controller, schema version, policy state, bind result, and object size. For CS_E_OBJECT_NOTFOUND, also retain the application and component build, architecture, process and thread IDs, COM apartment, operation correlation ID, elapsed time, and the first state-changing event before the failure. When logging CS_E_OBJECT_NOTFOUND, redact content and credentials while preserving types, lengths, hashes, opaque identities, and lifecycle generations needed to reproduce its contract.
- For
CS_E_OBJECT_NOTFOUND, log the referenced DN/GUID and the object that contains the reference. - For
CS_E_OBJECT_NOTFOUND, query by immutable directory identity as well as distinguished name. - For
CS_E_OBJECT_NOTFOUND, inspect replication and deletion metadata before recreating anything.
Diagnostic sequence
- Capture
CS_E_OBJECT_NOTFOUNDat the first native return before a wrapper maps it to a generic exception. - Identify the exact object, method, and lifecycle phase involved in following a stored object reference during package or class resolution.
- Log the referenced DN/GUID and the object that contains the reference.
- Query by immutable directory identity as well as distinguished name.
- Inspect replication and deletion metadata before recreating anything.
- Reproduce
CS_E_OBJECT_NOTFOUNDwith one controlled input or state change, and verify that the correction changes the decisive evidence rather than merely hiding the result.
Recovery and retry
Correction. For CS_E_OBJECT_NOTFOUND, repair the stale reference or restore/republish the authoritative object, then allow replication to settle. Retry boundary. Retry on another controller only to diagnose replication; durable recovery requires consistent directory data. Before repeating the CS_E_OBJECT_NOTFOUND operation, determine whether directory metadata, package staging, or a local installation changed before failure and avoid deleting a directory object whose ownership is not established.
Practical scenario
A class mapping still points to a package object removed during a failed upgrade; republishing the package and updating the mapping removes the orphan. This isolates CS_E_OBJECT_NOTFOUND within legacy COM Class Store and Active Directory software-installation metadata and provides a regression test for the stated correction.
Difference from related HRESULTs
CS_E_PACKAGE_NOTFOUND is a failed criteria search; CS_E_OBJECT_NOTFOUND is a broken reference to a particular directory object. For CS_E_OBJECT_NOTFOUND, keep those outcomes separate in exception mappings, telemetry dimensions, user messages, and automated retry policy.
Developer and administrator guidance
For CS_E_OBJECT_NOTFOUND, treat CS_E results as a legacy automatic-installation contract, preserve directory and policy diagnostics, and fall back to ordinary COM registration only when the product explicitly supports it. Regression coverage for CS_E_OBJECT_NOTFOUND should include missing packages and classes, duplicate objects, malformed paths, version and schema mismatch, directory outages, administrative limits, and partial publication of metadata.
Operational repair for CS_E_OBJECT_NOTFOUND must target the evidence-backed owner: involve the Active Directory or software-deployment owner, verify policy and domain-controller evidence, and use the management system that created the package or class-store object. Retain before-and-after traces for CS_E_OBJECT_NOTFOUND so the change can be attributed and reversed.
References
- Microsoft: generic COM error codes — official Microsoft documentation relevant to
CS_E_OBJECT_NOTFOUND. - Microsoft: HRESULT values — official Microsoft documentation relevant to
CS_E_OBJECT_NOTFOUND. - Microsoft: CLSIDFromProgIDEx — official Microsoft documentation relevant to
CS_E_OBJECT_NOTFOUND. - Microsoft: registering COM components — official Microsoft documentation relevant to
CS_E_OBJECT_NOTFOUND.
Looking for a different code? Search another status or error code.