| Previous | Next |
| FILTER_E_PASSWORD | FILTER_E_TOO_BIG |
FILTER_E_UNKNOWNFORMAT
The selected filter does not recognize the document format
FILTER_E_UNKNOWNFORMAT is HRESULT 0x8004170C (-2147215604 signed; 2147751692 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF for these values), and code field is 0x170C. Standard HRESULT severity rules classify the value as a failure. AllStat describes the value as “The document format is not recognized by the flter.”
Interpretation in context
This result belongs to probing or loading source bytes before IFilter chunk enumeration begins. The decisive interpretation is that the handler cannot match the actual file structure to a format it knows how to parse. 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.
Conditions to test
- This result: The extension is incorrect.
- This result: The file is truncated or contains another format.
- This result: The registered handler does not support this format version.
- It: Content sniffing reaches an unsupported container.
The useful hypothesis for it must explain both probing or loading source bytes before IFilter chunk enumeration begins and the documented condition. Compare the failing case with a control that preserves leading signature bytes and file length and changes only extension, MIME type and detected format; this prevents unrelated environment differences from dominating the result test.
Incident record
- check leading signature bytes and file length.
- check extension, MIME type and detected format.
- check chosen handler CLSID and version.
- check known-good sample from the same producer.
Capture leading signature bytes and file length before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with extension, MIME type and detected format, 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.
Step-by-step diagnosis
- Compare magic bytes with the claimed extension. Associate this observation specifically with it.
- Open the file in the owning application and validate its format. Associate this observation specifically with it.
- Test the same bytes with the registered handler directly. Associate this observation specifically with it.
- Avoid changing associations until misclassification or handler coverage is proven. 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 match the actual file structure to a format it knows how to parse. This isolates whether it is causal rather than merely repeatable.
Retry decision
Correct the file classification, repair the document or install an appropriate trusted handler; identical retries cannot change format recognition. Record whether probing or loading source bytes before IFilter chunk enumeration begins 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 leading signature bytes and file length or extension, MIME type and detected format. A timer alone cannot demonstrate that the result contract condition has changed.
What the value cannot establish
It does not by itself prove registry corruption or a globally missing filter association. Without the call boundary for probing or loading source bytes before IFilter chunk enumeration begins, it also cannot identify which wrapper or configuration layer introduced the condition.
Adjacent contract states
FILTER_E_EMBEDDING_UNAVAILABLE can occur after a parent was recognized; this HRESULT rejects the current object format itself. 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
- At the code boundary, keep leading signature bytes and file length beside the returned HRESULT; preserve the observation under the result correlation record.
- In telemetry, correlate extension, MIME type and detected format with the target and component generation; preserve the observation under the result correlation record.
- For regression coverage, force the documented condition: the handler cannot match the actual file structure to a format it knows how to parse; preserve the observation under the result correlation record.
- For operations staff, expose the corrective state change rather than a generic retry button; preserve the observation under the result correlation record.
- After remediation, validate one known-good control and the original failing case; preserve the observation under the result correlation record.
Concrete scenario
A PDF extension is applied to an HTML error page downloaded by a proxy. Signature logging reveals why the PDF handler rejects it. 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: Content-Indexing values — official contract information relevant to it.
- Microsoft: filter handlers in Windows Search
- Microsoft: IFilter interface
- Microsoft: testing filter handlers
- Microsoft: Filter-Interface values
Looking for a different code? Search another status or error code.