Site icon EfmSoft

What does HRESULT 0x80041736 (FILTER_E_ALREADY_OPEN) mean?

 
Previous Next
FILTER_E_TOO_BIG FILTER_E_UNREACHABLE

FILTER_E_ALREADY_OPEN

The filter instance already has an open file

FILTER_E_ALREADY_OPEN is HRESULT 0x80041736. Windows documents it as “A file is already open. Cannot open another one while a file is open.”

Relevant contract

This result belongs to asking a stateful content-indexing filter to open another source before closing or resetting the current one. One filter object is being reused across overlapping document lifetimes.

Ways this state occurs

  • The previous close path was skipped after an exception
  • Two worker threads share one handler instance
  • A timeout abandons a file without releasing filter state
  • Pooling returns a still-open object

Compare the failing case with a control that preserves filter instance identity and changes only first and second document identities; this prevents unrelated environment differences from dominating the test.

Telemetry fields

  • Filter instance identity.
  • First and second document identities.
  • Open/close call sequence.
  • Thread and task ownership.

Capture filter instance identity before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with first and second document identities, component version, UTC timestamp and correlation ID.

Verification sequence

  1. Trace the full lifetime of the same filter instance.
  2. Verify cleanup runs on success, failure and cancellation.
  3. Remove concurrent use of non-reentrant handler objects.
  4. Create a fresh instance to prove the source file itself is not defective.

Preserve the component version and target identity, then alter only the condition described as one filter object is being reused across overlapping document lifetimes.

Safe continuation

Close/reset the current object or discard the contaminated instance. Retrying the second open on unchanged state will fail again. Record whether asking a stateful content-indexing filter to open another source before closing or resetting the current one produced any content, update or state transition before returning.

Retry only after a concrete change in filter instance identity or first and second document identities.

Limits of the HRESULT

It does not mean another process has the file open; that condition maps more naturally to FILTER_E_IN_USE. Without the call boundary for asking a stateful content-indexing filter to open another source before closing or resetting the current one, it also cannot identify which wrapper or configuration layer introduced the condition.

Distinguishing related codes

FILTER_E_NOT_OPEN is the opposite lifecycle violation, while it detects overlapping opens.

Developer and administrator actions

  • At step 1, record filter instance identity with the returned HRESULT
  • At step 2, in telemetry, correlate first and second document identities with the target and component generation
  • At step 3, for regression coverage, force the documented condition: one filter object is being reused across overlapping document lifetimes
  • At step 4, for operations staff, expose the corrective state change rather than a generic retry button
  • At step 5, after remediation, validate one known-good control and the original failing case

Practical case

A filter-object pool returns an instance whose cancellation path missed cleanup. Instance-level tracing reveals the prior document still owns it.

Official Microsoft references


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

Exit mobile version