| Previous | Next |
| FILTER_E_IN_USE | FILTER_E_NO_SUCH_PROPERTY |
FILTER_E_NOT_OPEN
No document is open in the filter instance
FILTER_E_NOT_OPEN is HRESULT 0x80041739. Windows documents it as “The document is not opened.”
Interpretation in context
This result belongs to requesting extraction or close behavior before the handler has successfully opened a source. The caller and filter disagree about lifecycle state.
Conditions to test
- Initialization failed but later methods still execute.
- Cleanup runs twice.
- An instance was returned to a pool after close.
- One thread closes state another thread expects to use.
Compare the failing case with a control that preserves instance identity and lifecycle transitions and changes only result of the preceding open/init call; this prevents unrelated environment differences from dominating the test.
Incident record
- Check instance identity and lifecycle transitions.
- Check result of the preceding open/init call.
- Check method invoked after state loss.
- Check thread and cancellation ownership.
Capture instance identity and lifecycle transitions before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with result of the preceding open/init call, component version, UTC timestamp and correlation ID.
Step-by-step diagnosis
- Find the last successful state transition for this instance.
- Stop the pipeline immediately after a failed open.
- Make close idempotent at the wrapper layer.
- Prove that each task owns an independent filter object.
Preserve the component version and target identity, then alter only the condition described as the caller and filter disagree about lifecycle state.
Retry decision
Open and initialize a source successfully before extraction, or replace the invalid instance. Repeating the out-of-order method is not a retry. Record whether requesting extraction or close behavior before the handler has successfully opened a source produced any content, update or state transition before returning.
Retry only after a concrete change in instance identity and lifecycle transitions or result of the preceding open/init call.
What the value cannot establish
It does not mean the source path is missing or inaccessible; the call may never have reached the source. Without the call boundary for requesting extraction or close behavior before the handler has successfully opened a source, it also cannot identify which wrapper or configuration layer introduced the condition.
Adjacent contract states
FILTER_E_ALREADY_OPEN detects a second open; it detects use with no active object.
Developer and administrator actions
- Record instance identity and lifecycle transitions with the returned HRESULT
- In telemetry, correlate result of the preceding open/init call with the target and component generation
- For regression coverage, force the documented condition: the caller and filter disagree about lifecycle state
Concrete scenario
An error handler closes a filter and the normal completion path closes it again. State-machine assertions identify the double cleanup.
Official Microsoft references
- Microsoft: Content-Indexing values — official contract information relevant to this HRESULT.
- Microsoft: IFilter interface
- Microsoft: testing filter handlers
- Microsoft: filter handlers in Windows Search
- Microsoft: Filter-Interface values
Looking for a different code? Search another status or error code.
