What does HRESULT 0x8004E029 (CO_E_NOIISINTRINSICS) mean?

 
Previous Next
CO_E_THREADINGMODEL_CHANGED CO_E_NOCOOKIES

CO_E_NOIISINTRINSICS

CO_E_NOIISINTRINSICS is the failure HRESULT 0x8004E029 (signed decimal -2147164119, unsigned decimal 2147803177). Its severity bit is 1, facility is 4 (FACILITY_ITF), and the facility-specific code field is 0xE029.

The component has no active IIS request environment from which to obtain intrinsics

This HRESULT reports that IIS intrinsic objects are unavailable and the work must start with IIS. Legacy COM+/ASP integration can expose objects such as Request, Response, Server, Session, and Application only while the component is called through the appropriate IIS request context.

AllStat describes the result as “IIS intrinsics not available. Start your work with IIS.” For CO_E_NOIISINTRINSICS, this wording identifies the immediate COM+ condition, while surrounding context and earlier events determine why it was reached.

Contract boundary for CO_E_NOIISINTRINSICS

A COM+ object context alone is not sufficient. The activation and call chain must carry the IIS/ASP intrinsic environment, and out-of-process or background execution can lose it.

Causes that fit this specific result

  • The component is activated by a service, scheduled task, test harness, or native client rather than ASP/IIS.
  • Work is deferred to a worker thread after the original request context has ended.
  • The component runs in a configuration where the legacy ObjectContext route cannot expose ASP built-ins.
  • A refactor moves code requiring Request or Response into a reusable component called outside IIS.

Evidence to preserve before changing the system

  • Record the caller process, IIS application pool, request ID, thread, and whether an ASP request is active.
  • Log which intrinsic object was requested and at what point in the call chain.
  • Capture whether the COM+ component runs in-process or out-of-process.
  • Verify the component’s IISIntrinsics configuration in the COM+ catalog.

Diagnostic sequence

  • Invoke the component from the intended IIS request path when intrinsics are part of its contract.
  • Pass explicit request data to reusable business components instead of retrieving ambient ASP objects.
  • Do not retain intrinsic objects for asynchronous work after the response lifecycle ends.
  • Validate behavior in both IIS-hosted and non-IIS callers if the component is shared.

Retry and recovery

Restore the IIS call context or remove the ambient-intrinsics dependency. Retrying from the same background or non-IIS caller will not create those objects.

What CO_E_NOIISINTRINSICS does not establish

This result does not mean IIS is globally stopped; the current component invocation may simply lack an IIS request context. It also does not identify a specific missing intrinsic.

Difference from nearby HRESULT values

CO_E_NOCOOKIES concerns a cookie write attempt after an IIS/ASP context is otherwise involved. CONTEXT_E_NOCONTEXT is the broader absence of a COM+ object context.

Practical scenario

A nightly job reuses a component originally written for classic ASP and the component reads the Request object. The job receives this HRESULT; the component is refactored to accept explicit input while the web adapter remains responsible for IIS intrinsics.

Developer and telemetry guidance

Document whether an interface requires IIS ambient state. Logs should include request identity and hosting mode so operators do not restart IIS for calls that never originated there.

Official Microsoft references


Looking for a different code? Search another status or error code.