| Previous | Next |
| FILTER_E_ACCESS | FILTER_E_NO_VALUES |
FILTER_E_NO_TEXT
The current filter chunk does not contain text
FILTER_E_NO_TEXT is HRESULT 0x80041705 (-2147215611 signed; 2147751685 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF for these values), and code field is 0x1705. Its failure-severity encoding reports a method/chunk-type mismatch, not necessarily a defect in the source document. AllStat describes the value as “No text in current chunk.”
Interpretation in context
FILTER_E_NO_TEXT belongs to calling IFilter::GetText when STAT_CHUNK describes a property-value chunk or another nontext chunk. The decisive interpretation is that the caller selected the wrong extraction method for the current chunk type. For FILTER_E_NO_TEXT, keep the symbolic constant and method stage together in logs; its hexadecimal value alone cannot identify the owning transition or input.
For FILTER_E_NO_TEXT, the IFilter contract is stateful: GetChunk selects a chunk, then GetText or GetValue consumes content according to STAT_CHUNK flags. In the FILTER_E_NO_TEXT 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.
Conditions to test
FILTER_E_NO_TEXT: CHUNK_VALUE was returned but the consumer calls GetText.FILTER_E_NO_TEXT: Chunk flags were cached from a previous chunk.FILTER_E_NO_TEXT: A filter emits metadata-only content.
The useful hypothesis for FILTER_E_NO_TEXT must explain both calling IFilter::GetText when STAT_CHUNK describes a property-value chunk or another nontext chunk and the documented condition. Compare the failing case with a control that preserves current STAT_CHUNK flags and attribute and changes only exact GetChunk/GetText sequence; this prevents unrelated environment differences from dominating the FILTER_E_NO_TEXT test.
Incident record
- For
FILTER_E_NO_TEXT, check current STAT_CHUNK flags and attribute. - For
FILTER_E_NO_TEXT, check exact GetChunk/GetText sequence. - For
FILTER_E_NO_TEXT, check chunk id used by the consumer. - For
FILTER_E_NO_TEXT, check filter conformance output.
For FILTER_E_NO_TEXT, capture current STAT_CHUNK flags and attribute before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with exact GetChunk/GetText sequence, component version, UTC timestamp and correlation ID. Bound the FILTER_E_NO_TEXT telemetry to diagnostic metadata because document content, credentials and unrestricted query text may be sensitive.
Step-by-step diagnosis
- Inspect flags immediately after each successful GetChunk. Associate this observation specifically with
FILTER_E_NO_TEXT. - Dispatch CHUNK_TEXT to GetText and CHUNK_VALUE to GetValue. Associate this observation specifically with
FILTER_E_NO_TEXT. - Remove stale chunk metadata from asynchronous queues. Associate this observation specifically with
FILTER_E_NO_TEXT. - Confirm the filter did not change flags after returning the chunk. Associate this observation specifically with
FILTER_E_NO_TEXT.
Change one variable per FILTER_E_NO_TEXT control run. Preserve the component version and target identity, then alter only the condition described as the caller selected the wrong extraction method for the current chunk type. This isolates whether FILTER_E_NO_TEXT is causal rather than merely repeatable.
Retry decision
Use the method indicated by STAT_CHUNK or advance to the next chunk. Retrying GetText is a contract error in the caller. For FILTER_E_NO_TEXT, record whether calling IFilter::GetText when STAT_CHUNK describes a property-value chunk or another nontext chunk produced any content, update or state transition before returning. If completion remains unknown, the FILTER_E_NO_TEXT path must not replay non-idempotent work until the owner confirms final state.
The retry gate for FILTER_E_NO_TEXT should be a concrete change in current STAT_CHUNK flags and attribute or exact GetChunk/GetText sequence. A timer alone cannot demonstrate that the FILTER_E_NO_TEXT contract condition has changed.
What the value cannot establish
It does not say the whole document lacks text; later chunks may contain searchable text. Without the call boundary for calling IFilter::GetText when STAT_CHUNK describes a property-value chunk or another nontext chunk, FILTER_E_NO_TEXT also cannot identify which wrapper or configuration layer introduced the condition.
Adjacent contract states
FILTER_E_NO_MORE_TEXT exhausts a valid text chunk; FILTER_E_NO_TEXT identifies a nontext current chunk. In FILTER_E_NO_TEXT telemetry, preserve neighboring constants separately because the same visible symptom may require a different caller action, owner or recovery gate.
Developer and administrator actions
- At the code boundary, keep current STAT_CHUNK flags and attribute beside the returned HRESULT; preserve the observation under the
FILTER_E_NO_TEXTcorrelation record. - In telemetry, correlate exact GetChunk/GetText sequence with the target and component generation; preserve the observation under the
FILTER_E_NO_TEXTcorrelation record. - For regression coverage, force the documented condition: the caller selected the wrong extraction method for the current chunk type; preserve the observation under the
FILTER_E_NO_TEXTcorrelation record. - For operations staff, expose the corrective state change rather than a generic retry button; preserve the observation under the
FILTER_E_NO_TEXTcorrelation record. - After remediation, validate one known-good control and the original failing case; preserve the observation under the
FILTER_E_NO_TEXTcorrelation record.
Concrete scenario
A parallel extractor associates the previous chunk flags with a new chunk and calls GetText. Serializing chunk state fixes the method mismatch. In this scenario, handling FILTER_E_NO_TEXT 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
FILTER_E_NO_TEXT. - Microsoft: IFilter::GetText — official contract information relevant to
FILTER_E_NO_TEXT. - Microsoft: IFilter::GetChunk — official contract information relevant to
FILTER_E_NO_TEXT. - Microsoft: testing filter handlers — official contract information relevant to
FILTER_E_NO_TEXT. - Microsoft: IFilter interface — official contract information relevant to
FILTER_E_NO_TEXT.
Looking for a different code? Search another status or error code.