| Previous | Next |
| FILTER_E_NO_MORE_VALUES | FILTER_E_NO_TEXT |
FILTER_E_ACCESS
The filter cannot access the source object
FILTER_E_ACCESS is HRESULT 0x80041703 (-2147215613 signed; 2147751683 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF for these values), and code field is 0x1703. Standard HRESULT severity rules classify the value as a failure. AllStat describes the value as “Unable to access object.”
State represented by the HRESULT
This result belongs to opening or reading the document, stream, storage or dependent resource used by a filter handler. The decisive interpretation is that the handler cannot obtain the bytes or object state required to continue extraction. Keep the symbolic constant and method stage together in logs; its hexadecimal value alone cannot identify the owning transition or input.
The IFilter contract is stateful: GetChunk selects a chunk, then GetText or GetValue consumes content according to STAT_CHUNK flags. In the result 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.
Likely triggers
- At step 1 for it, the service identity lacks read permission
- At step 2 for it, the source stream was revoked or closed
- At step 3 for it, a network or storage provider denies access
- At step 4 for it, the handler requires a child object that is not accessible
The useful hypothesis for it must explain both opening or reading the document, stream, storage or dependent resource used by a filter handler and the documented condition. Compare the failing case with a control that preserves source path or persistent identity and changes only filter host identity and token; this prevents unrelated environment differences from dominating the result test.
Data for diagnosis
- This result: Source path or persistent identity.
- This result: Filter host identity and token.
- This result: Underlying storage error and timestamp.
- It: Access mode used to initialize the handler.
Capture source path or persistent identity before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with filter host identity and token, component version, UTC timestamp and correlation ID. Bound the result telemetry to diagnostic metadata because document content, credentials and unrestricted query text may be sensitive.
Investigation order
- Reproduce a minimal read under the actual filter-host identity. Associate this observation specifically with it.
- Separate ACL denial from missing, offline or locked content. Associate this observation specifically with it.
- Check whether the source handle remained valid for the entire filter lifetime. Associate this observation specifically with it.
- Capture the lower-level error before the handler maps it to this HRESULT. Associate this observation specifically with it.
Change one variable per it control run. Preserve the component version and target identity, then alter only the condition described as the handler cannot obtain the bytes or object state required to continue extraction. This isolates whether it is causal rather than merely repeatable.
Correct response
Restore narrowly scoped read access or a valid stream, then create a fresh filter instance. Blind retry without changing access state is not useful. Record whether opening or reading the document, stream, storage or dependent resource used by a filter handler produced any content, update or state transition before returning. If completion remains unknown, the path must not replay non-idempotent work until the owner confirms final state.
The retry gate for it should be a concrete change in source path or persistent identity or filter host identity and token. A timer alone cannot demonstrate that the result contract condition has changed.
Scope of the signal
It does not identify which ACL, stream operation or embedded object caused the denial. Without the call boundary for opening or reading the document, stream, storage or dependent resource used by a filter handler, it also cannot identify which wrapper or configuration layer introduced the condition.
Related HRESULT values
FILTER_E_UNREACHABLE concerns reachability, while it indicates an access attempt was refused or could not be completed. In it telemetry, preserve neighboring constants separately because the same visible symptom may require a different caller action, owner or recovery gate.
Developer and administrator actions
- check At the code boundary, keep source path or persistent identity beside the returned HRESULT.
- check In telemetry, correlate filter host identity and token with the target and component generation.
- check For regression coverage, force the documented condition: the handler cannot obtain the bytes or object state required to continue extraction.
- check For operations staff, expose the corrective state change rather than a generic retry button.
- check After remediation, validate one known-good control and the original failing case.
Example in a pipeline
An interactive test succeeds but the search filter host runs under a service account without access to an encrypted share. Token-aware testing exposes the difference. In this scenario, handling it at its real contract boundary prevents the application from collapsing a precise state into an unhelpful generic “search failed” message.
Official Microsoft references
- Microsoft: Filter-Interface values — official contract information relevant to it.
- Microsoft: IFilter interface
- Microsoft: filter handlers in Windows Search
- Microsoft: testing filter handlers
Looking for a different code? Search another status or error code.