| Previous | Next |
| FILTER_E_NO_MORE_TEXT | FILTER_E_ACCESS |
FILTER_E_NO_MORE_VALUES
All property values in the current chunk have been returned
FILTER_E_NO_MORE_VALUES is HRESULT 0x80041702 (-2147215614 signed; 2147751682 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF for these values), and code field is 0x1702. Its failure-severity encoding closes value retrieval for the current chunk and does not invalidate a value already returned. AllStat describes the value as “No more property values available in chunk.”
API stage and meaning
This result belongs to continuing IFilter::GetValue for a value-bearing chunk. The decisive interpretation is that the value stream for the active chunk is exhausted and GetChunk must select another chunk. 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.
Failure paths
- The result investigation should record the caller asks for a second value from a single-value chunk.
- The result investigation should record a loop ignores the successful value already returned.
- The result investigation should record the filter exposes no additional PROPVARIANT for this chunk.
The useful hypothesis for it must explain both continuing IFilter::GetValue for a value-bearing chunk and the documented condition. Compare the failing case with a control that preserves chunk id and CHUNK_VALUE flag and changes only property specification from STAT_CHUNK; this prevents unrelated environment differences from dominating the result test.
Observability checklist
- At step 1 for it, chunk id and CHUNK_VALUE flag
- At step 2 for it, property specification from STAT_CHUNK
- At step 3 for it, count and types of returned PROPVARIANT values
- At step 4 for it, getValue/GetChunk call order
Capture chunk id and CHUNK_VALUE flag before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with property specification from STAT_CHUNK, 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.
How to isolate the cause
- Verify the current chunk is marked as a value chunk. Associate this observation specifically with this result.
- Release each returned PROPVARIANT according to the interface contract.
- Distinguish one exhausted property from end of all chunks.
- Advance with GetChunk and inspect the next STAT_CHUNK. 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 value stream for the active chunk is exhausted and GetChunk must select another chunk. This isolates whether it is causal rather than merely repeatable.
Remediation policy
Continue chunk enumeration; do not retry GetValue against the same exhausted chunk. Record whether continuing IFilter::GetValue for a value-bearing chunk 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 chunk id and CHUNK_VALUE flag or property specification from STAT_CHUNK. A timer alone cannot demonstrate that the result contract condition has changed.
Wrong conclusions to avoid
It does not imply that the property is absent from every chunk or that property extraction failed. Without the call boundary for continuing IFilter::GetValue for a value-bearing chunk, it also cannot identify which wrapper or configuration layer introduced the condition.
Comparison
FILTER_E_NO_VALUES rejects GetValue for a non-value chunk; it follows successful or valid value enumeration. 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
- It: At the code boundary, keep chunk id and CHUNK_VALUE flag beside the returned HRESULT.
- It: In telemetry, correlate property specification from STAT_CHUNK with the target and component generation.
- It: For regression coverage, force the documented condition: the value stream for the active chunk is exhausted and GetChunk must select another chunk.
- It: For operations staff, expose the corrective state change rather than a generic retry button.
- It: After remediation, validate one known-good control and the original failing case.
Worked scenario
A metadata filter emits one author value. A generic loop requests another value, receives this HRESULT and advances safely. 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::GetValue
- Microsoft: IFilter::GetChunk
- Microsoft: testing filter handlers
- Microsoft: IFilter interface
Looking for a different code? Search another status or error code.
