| Previous | Next |
| FILTER_E_ALREADY_OPEN | FILTER_E_IN_USE |
FILTER_E_UNREACHABLE
The document cannot be reached by the filter
FILTER_E_UNREACHABLE is HRESULT 0x80041737 (-2147215561 signed; 2147751735 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF for these values), and code field is 0x1737. For FILTER_E_UNREACHABLE, standard HRESULT severity rules classify the value as a failure. AllStat describes the value as “The file is not reachable.”
API stage and meaning
FILTER_E_UNREACHABLE belongs to resolving or fetching the source object before its bytes can be parsed. The decisive interpretation is that the path, URL, storage object or remote endpoint is not currently reachable. For FILTER_E_UNREACHABLE, keep the symbolic constant and method stage together in logs; its hexadecimal value alone cannot identify the owning transition or input.
For FILTER_E_UNREACHABLE, the IFilter contract is stateful: GetChunk selects a chunk, then GetText or GetValue consumes content according to STAT_CHUNK flags. In the FILTER_E_UNREACHABLE investigation, method order and filter-instance ownership are therefore part of the evidence. This context narrows the responsible component without replacing the code-specific checks below.
Failure paths
- The
FILTER_E_UNREACHABLEinvestigation should record a share or server is unavailable. - The
FILTER_E_UNREACHABLEinvestigation should record the item was moved after enumeration. - The
FILTER_E_UNREACHABLEinvestigation should record name resolution fails. - The
FILTER_E_UNREACHABLEinvestigation should record an offline placeholder has no hydrated content.
The useful hypothesis for FILTER_E_UNREACHABLE must explain both resolving or fetching the source object before its bytes can be parsed and the documented condition. Compare the failing case with a control that preserves canonical source address and changes only resolution result and network endpoint; this prevents unrelated environment differences from dominating the FILTER_E_UNREACHABLE test.
Observability checklist
- At step 1 for
FILTER_E_UNREACHABLE, canonical source address - At step 2 for
FILTER_E_UNREACHABLE, resolution result and network endpoint - At step 3 for
FILTER_E_UNREACHABLE, enumeration-to-open time gap - At step 4 for
FILTER_E_UNREACHABLE, underlying transport or storage status
For FILTER_E_UNREACHABLE, capture canonical source address before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with resolution result and network endpoint, component version, UTC timestamp and correlation ID. Bound the FILTER_E_UNREACHABLE telemetry to diagnostic metadata because document content, credentials and unrestricted query text may be sensitive.
How to isolate the cause
- Resolve the exact canonical address from the filter host. Associate this observation specifically with
FILTER_E_UNREACHABLE. - Check whether the item still exists at that identity. Associate this observation specifically with
FILTER_E_UNREACHABLE. - Separate transient transport loss from permanent relocation. Associate this observation specifically with
FILTER_E_UNREACHABLE. - Use bounded backoff only when the dependency is known to recover. Associate this observation specifically with
FILTER_E_UNREACHABLE.
Change one variable per FILTER_E_UNREACHABLE control run. Preserve the component version and target identity, then alter only the condition described as the path, URL, storage object or remote endpoint is not currently reachable. This isolates whether FILTER_E_UNREACHABLE is causal rather than merely repeatable.
Remediation policy
Restore reachability or update the indexed identity; recreate the filter after the dependency becomes available. For FILTER_E_UNREACHABLE, record whether resolving or fetching the source object before its bytes can be parsed produced any content, update or state transition before returning. If completion remains unknown, the FILTER_E_UNREACHABLE path must not replay non-idempotent work until the owner confirms final state.
The retry gate for FILTER_E_UNREACHABLE should be a concrete change in canonical source address or resolution result and network endpoint. A timer alone cannot demonstrate that the FILTER_E_UNREACHABLE contract condition has changed.
Wrong conclusions to avoid
It does not indicate that an existing reachable object was denied by ACL or locked by a process. Without the call boundary for resolving or fetching the source object before its bytes can be parsed, FILTER_E_UNREACHABLE also cannot identify which wrapper or configuration layer introduced the condition.
Comparison
FILTER_E_ACCESS follows an access attempt, while FILTER_E_UNREACHABLE indicates the source cannot be contacted or resolved. In FILTER_E_UNREACHABLE telemetry, preserve neighboring constants separately because the same visible symptom may require a different caller action, owner or recovery gate.
Developer and administrator actions
FILTER_E_UNREACHABLE: At the code boundary, keep canonical source address beside the returned HRESULT.FILTER_E_UNREACHABLE: In telemetry, correlate resolution result and network endpoint with the target and component generation.FILTER_E_UNREACHABLE: For regression coverage, force the documented condition: the path, URL, storage object or remote endpoint is not currently reachable.FILTER_E_UNREACHABLE: For operations staff, expose the corrective state change rather than a generic retry button.FILTER_E_UNREACHABLE: After remediation, validate one known-good control and the original failing case.
Worked scenario
A crawler enumerates a network file, then the share is disconnected before filtering. Correlation timestamps expose the race. In this scenario, handling FILTER_E_UNREACHABLE at its real contract boundary prevents the application from collapsing a precise state into an unhelpful generic “search failed” message.
Official Microsoft references
- Microsoft: Content-Indexing values — official contract information relevant to
FILTER_E_UNREACHABLE. - Microsoft: filter handlers in Windows Search — official contract information relevant to
FILTER_E_UNREACHABLE. - Microsoft: IFilter interface — official contract information relevant to
FILTER_E_UNREACHABLE. - Microsoft: testing filter handlers — official contract information relevant to
FILTER_E_UNREACHABLE. - Microsoft: Filter-Interface values — official contract information relevant to
FILTER_E_UNREACHABLE.
Looking for a different code? Search another status or error code.
