| Previous | Next |
| CO_E_IIDSTRING | CO_E_APPSINGLEUSE |
CO_E_APPNOTFOUND
Application not found
CO_E_APPNOTFOUND has hexadecimal value 0x800401F5 (unsigned 2147746293, signed -2147221003). AllStat records “Application not found”. The narrow interpretation is that the application required to serve the COM class cannot be found. The failing stage is launching an out-of-process COM server during activation.
The high bit in 0x800401F5 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 501 (0x01F5). 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 CO_E_APPNOTFOUND remain essential.
API stage
Understanding CO_E_APPNOTFOUND requires this subsystem context: Early COM activation has discrete phases: thread initialization, identifier parsing, registration lookup, server launch, and class-factory registration. For CO_E_APPNOTFOUND, preserve the first phase-specific result before a framework collapses it into a generic activation exception.
- Associate
CO_E_APPNOTFOUNDwith one exact operation in thread apartment initialization, GUID parsing, class-object discovery, local-server launch, and single-use class-factory registration. - Confirm that
CO_E_APPNOTFOUNDcame from launching an out-of-process COM server during activation, rather than from cleanup or a wrapper that ran afterward. - Preserve any IErrorInfo, underlying Win32 result, provider message, or callback failure that preceded
CO_E_APPNOTFOUND; the HRESULT alone should not erase a more specific cause.
Verification steps
- Capture
CO_E_APPNOTFOUNDat the first native return before a wrapper maps it to a generic exception. - Identify the exact object, method, and lifecycle phase involved in launching an out-of-process COM server during activation.
- Record CLSID, effective server command, expanded executable path, architecture, and package identity.
- Verify file existence and signature through deployment inventory.
- Check upgrade/uninstall logs for stale registration.
- Reproduce
CO_E_APPNOTFOUNDwith one controlled input or state change, and verify that the correction changes the decisive evidence rather than merely hiding the result.
Interpretation limits
CO_E_APPNOTFOUNDcan result when LocalServer32 points to a missing or moved executable.CO_E_APPNOTFOUNDcan result when path quoting or environment expansion resolves to a nonexistent program.CO_E_APPNOTFOUNDcan result when an optional product component was not installed although registration remains.
Incident record
A useful CO_E_APPNOTFOUND incident records the thread ID and apartment request, CLSID text, IID text, class context, server executable or DLL path, process launch result, class-factory registration flags, timeout, and activation generation. For CO_E_APPNOTFOUND, 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 CO_E_APPNOTFOUND, redact content and credentials while preserving types, lengths, hashes, opaque identities, and lifecycle generations needed to reproduce its contract.
- For
CO_E_APPNOTFOUND, record CLSID, effective server command, expanded executable path, architecture, and package identity. - For
CO_E_APPNOTFOUND, verify file existence and signature through deployment inventory. - For
CO_E_APPNOTFOUND, check upgrade/uninstall logs for stale registration.
Recovery conditions
Correction. For CO_E_APPNOTFOUND, repair or reinstall the owning application and its COM registration; remove stale registration only through supported deployment cleanup. Retry boundary. Retry after deployment repair; repeatedly launching a missing path wastes time and can trigger misleading fallback behavior. Before repeating the CO_E_APPNOTFOUND operation, balance successful CoInitializeEx calls on the same thread, revoke only class objects actually registered, and determine whether a local server or single-use factory already served a request.
Practical scenario
An upgrade moves the automation server but leaves the old LocalServer32 value; repairing the product updates the path and activation succeeds. This isolates CO_E_APPNOTFOUND within COM initialization and early activation and provides a regression test for the stated correction.
Difference from related HRESULTs
REGDB_E_CLASSNOTREG means no usable class registration; CO_E_APPNOTFOUND means registration leads to an application that cannot be located. For CO_E_APPNOTFOUND, keep those outcomes separate in exception mappings, telemetry dimensions, user messages, and automated retry policy.
Developer and administrator guidance
For CO_E_APPNOTFOUND, record the activation phase, parse GUID text before lookup, initialize every participating thread explicitly, and make class-object registration lifetime visible in server state. Regression coverage for CO_E_APPNOTFOUND should include uninitialized and incompatibly initialized threads, malformed CLSID and IID text, missing applications, launch failure, factory-registration races, and single-use consumption.
Operational repair for CO_E_APPNOTFOUND must target the evidence-backed owner: verify the registered application and server executable with the supported installation path; thread initialization and class-factory lifetime defects require code fixes rather than registry improvisation. Retain before-and-after traces for CO_E_APPNOTFOUND so the change can be attributed and reversed.
References
- Microsoft: generic COM error codes — official Microsoft documentation relevant to
CO_E_APPNOTFOUND. - Microsoft: HRESULT values — official Microsoft documentation relevant to
CO_E_APPNOTFOUND. - Microsoft: CoInitializeEx — official Microsoft documentation relevant to
CO_E_APPNOTFOUND. - Microsoft: CoGetClassObject — official Microsoft documentation relevant to
CO_E_APPNOTFOUND. - Microsoft: CoRegisterClassObject — official Microsoft documentation relevant to
CO_E_APPNOTFOUND.
Looking for a different code? Search another status or error code.