| Previous | Next |
| SEARCH_E_NOREGION | FILTER_E_NO_MORE_TEXT |
FILTER_E_END_OF_CHUNKS
The filter has no further chunks to enumerate
FILTER_E_END_OF_CHUNKS is HRESULT 0x80041700 (-2147215616 signed; 2147751680 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF for these values), and code field is 0x1700. Its failure-severity encoding is used by IFilter::GetChunk as the terminal marker for the object; callers normally stop enumeration rather than report a damaged document. AllStat describes the value as “No more chunks of text available in object.”
Where the result belongs
FILTER_E_END_OF_CHUNKS belongs to advancing IFilter::GetChunk after all emitted text and value chunks have been consumed. The decisive interpretation is that the filter has reached its stable end-of-object state rather than failing to decode another chunk. For FILTER_E_END_OF_CHUNKS, keep the symbolic constant and method stage together in logs; its hexadecimal value alone cannot identify the owning transition or input.
For FILTER_E_END_OF_CHUNKS, the IFilter contract is stateful: GetChunk selects a chunk, then GetText or GetValue consumes content according to STAT_CHUNK flags. In the FILTER_E_END_OF_CHUNKS 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.
Concrete causes
- For
FILTER_E_END_OF_CHUNKS, check the caller invokes GetChunk after the final chunk. - For
FILTER_E_END_OF_CHUNKS, check an empty document legitimately exposes no chunks. - For
FILTER_E_END_OF_CHUNKS, check a wrapper mistakes the terminal HRESULT for an extraction fault.
The useful hypothesis for FILTER_E_END_OF_CHUNKS must explain both advancing IFilter::GetChunk after all emitted text and value chunks have been consumed and the documented condition. Compare the failing case with a control that preserves last successful chunk identifier and flags and changes only sequence of GetChunk return values; this prevents unrelated environment differences from dominating the FILTER_E_END_OF_CHUNKS test.
Evidence to retain
- Last successful chunk identifier and flags; preserve the observation under the
FILTER_E_END_OF_CHUNKScorrelation record. - Sequence of GetChunk return values; preserve the observation under the
FILTER_E_END_OF_CHUNKScorrelation record. - Whether Init succeeded for the same filter instance; preserve the observation under the
FILTER_E_END_OF_CHUNKScorrelation record. - Document identity and filter CLSID; preserve the observation under the
FILTER_E_END_OF_CHUNKScorrelation record.
For FILTER_E_END_OF_CHUNKS, capture last successful chunk identifier and flags before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with sequence of GetChunk return values, component version, UTC timestamp and correlation ID. Bound the FILTER_E_END_OF_CHUNKS telemetry to diagnostic metadata because document content, credentials and unrestricted query text may be sensitive.
Diagnostic path
- Confirm that the call was GetChunk, not GetText or GetValue. Associate this observation specifically with
FILTER_E_END_OF_CHUNKS. - Verify chunk identifiers were unique and increasing before termination. Associate this observation specifically with
FILTER_E_END_OF_CHUNKS. - Call GetChunk once more in a conformance test; the terminal result should remain stable. Associate this observation specifically with
FILTER_E_END_OF_CHUNKS. - Treat already emitted content as complete unless another error preceded the terminal state. Associate this observation specifically with
FILTER_E_END_OF_CHUNKS.
Change one variable per FILTER_E_END_OF_CHUNKS control run. Preserve the component version and target identity, then alter only the condition described as the filter has reached its stable end-of-object state rather than failing to decode another chunk. This isolates whether FILTER_E_END_OF_CHUNKS is causal rather than merely repeatable.
Recovery and retry
Stop enumeration normally and retain the collected chunks. Retry only after reinitializing for a different object or after the source object has changed. For FILTER_E_END_OF_CHUNKS, record whether advancing IFilter::GetChunk after all emitted text and value chunks have been consumed produced any content, update or state transition before returning. If completion remains unknown, the FILTER_E_END_OF_CHUNKS path must not replay non-idempotent work until the owner confirms final state.
The retry gate for FILTER_E_END_OF_CHUNKS should be a concrete change in last successful chunk identifier and flags or sequence of GetChunk return values. A timer alone cannot demonstrate that the FILTER_E_END_OF_CHUNKS contract condition has changed.
What must not be inferred
It does not prove that the document contained text, properties or a supported file extension; it only closes the chunk sequence. Without the call boundary for advancing IFilter::GetChunk after all emitted text and value chunks have been consumed, FILTER_E_END_OF_CHUNKS also cannot identify which wrapper or configuration layer introduced the condition.
Nearby results
FILTER_E_NO_MORE_TEXT closes text within one chunk, while FILTER_E_END_OF_CHUNKS closes the entire object enumeration. In FILTER_E_END_OF_CHUNKS telemetry, preserve neighboring constants separately because the same visible symptom may require a different caller action, owner or recovery gate.
Developer and administrator actions
- The
FILTER_E_END_OF_CHUNKSinvestigation should record At the code boundary, keep last successful chunk identifier and flags beside the returned HRESULT. - The
FILTER_E_END_OF_CHUNKSinvestigation should record In telemetry, correlate sequence of GetChunk return values with the target and component generation. - The
FILTER_E_END_OF_CHUNKSinvestigation should record For regression coverage, force the documented condition: the filter has reached its stable end-of-object state rather than failing to decode another chunk. - The
FILTER_E_END_OF_CHUNKSinvestigation should record For operations staff, expose the corrective state change rather than a generic retry button. - The
FILTER_E_END_OF_CHUNKSinvestigation should record After remediation, validate one known-good control and the original failing case.
Operational example
A crawler receives three property chunks and then this HRESULT. It commits the three chunks instead of marking the document as failed. In this scenario, handling FILTER_E_END_OF_CHUNKS 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_END_OF_CHUNKS. - Microsoft: IFilter::GetChunk — official contract information relevant to
FILTER_E_END_OF_CHUNKS. - Microsoft: testing filter handlers — official contract information relevant to
FILTER_E_END_OF_CHUNKS. - Microsoft: IFilter interface — official contract information relevant to
FILTER_E_END_OF_CHUNKS.
Looking for a different code? Search another status or error code.