| Previous | Next |
| FDAEMON_E_WORDLISTCOMMITFAILED | FDAEMON_E_TOOMANYFILTEREDBLOCKS |
FDAEMON_E_NOWORDLIST
No word list is currently being constructed
FDAEMON_E_NOWORDLIST is the failure HRESULT 0x80041687 (-2147215737 signed; 2147751559 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF), and code is 0x1687. AllStat describes it as “No wordlist is being constructed. May happen after fatal filter error.”
Exact contract boundary
This result belongs to legacy Windows content indexing and is returned while accepting extracted terms into the active word-list build context. The exact condition is: a prior fatal filtering failure, cancelled generation or lifecycle race leaves no valid word-list builder for the document. This stage matters because converting the result to a generic COM failure removes the information needed to choose the owner and retry policy.
This value belongs to the legacy filter daemon and content-indexing pipeline. It identifies failure while extracting or committing indexed content, so query syntax changes do not repair it. Preserve the document, filter handler and catalog generation that owned the work item. Current IFilter documentation clarifies handler extraction contracts, while the daemon HRESULT remains tied to the legacy content-indexing pipeline and its catalog generation.
Input or state defects
- changes in word-list context ID between validation and execution can reproduce the result even when the user-visible input looks unchanged.
- Retrying this result with the same creation/teardown events leaves the decisive contract violation intact.
- This result can appear when preceding fatal HRESULT disagrees with the state expected while accepting extracted terms into the active word-list build context.
- a stale or transformed catalog generation can make the component observe that a prior fatal filtering failure, cancelled generation or lifecycle race leaves no valid word-list builder for the document.
- an incomplete queued work generations hides the distinction needed to separate this HRESULT from a later catalog or service failure.
The strongest hypothesis for it must account for the operation—accepting extracted terms into the active word-list build context—and the documented condition. An unindexed document is only the outcome; it does not identify the handler, resource, partition generation, change list or word-list stage that failed.
Incident record
- record the source and normalization path of word-list context ID, not only its display form.
- use creation/teardown events to test whether the failure belongs to parsing, execution, indexing or capability negotiation.
- preserve preceding fatal HRESULT before objects or work items are released.
- associate catalog generation with the exact UTC timestamp and correlation identifier.
- compare failing and known-good values for queued work generations under the same provider or handler version.
- record the source and normalization path of document identity and type, not only its display form.
Evidence for it should reflect what the component actually received. Hash document content while retaining file type, size, handler CLSID, extraction stage, block counts and catalog generation.
How to isolate the cause
- Capture word-list context ID and creation/teardown events at the call boundary that returns this result.
- confirm the operation reached accepting extracted terms into the active word-list build context with the intended preceding fatal HRESULT.
- perform the decisive check: trace creation and teardown of the word-list context and find the earlier error that removed it.
- reduce the case until changing catalog generation alone changes the HRESULT or proves it irrelevant.
- apply the recovery only after verifying queued work generations; preserve the original result for comparison.
A useful control for it changes one dimension at a time. Run a copied document through the same filter version in an isolated queue and compare the exact extraction or commit stage with a known-good document type.
Restoration strategy
Recover the failed catalog generation or start a new valid indexing batch before resubmitting documents. Retry it only after the responsible input or state changes and the previous operation has completed or been cancelled. Retry only after resource pressure, handler behavior, work generation or catalog storage state changes and stale work is discarded.
Scope of the result
It does not prove that all documents or all filters are affected; preserve the triggering work item, handler and catalog generation before broad recovery. Without code-specific evidence for it, the value also cannot identify which wrapper, configuration, handler or service transition introduced the condition.
Comparison with adjacent codes
FDAEMON_E_WORDLISTCOMMITFAILED requires an existing word list that fails during commit. Keep the symbolic HRESULT beside the stage name in telemetry because nearby constants may require different owners, user messages and retry rules despite the same visible symptom.
Developer and administrator guidance
Retain the document identity, filter CLSID/version/bitness, daemon event, catalog generation and retry or quarantine history. Do not log credentials or unrestricted document content. Before rebuilding catalogs or reregistering every filter for it, isolate the document, handler and failed work generation.
Example from a search pipeline
After a fatal filter error tears down the active build, queued documents continue briefly. Generation-aware dispatch stops them and starts a clean batch. A regression test for it should assert the decisive evidence, change only the responsible condition, and include one neighboring HRESULT so future code cannot collapse distinct failures into a generic message.
Official Microsoft references
- Microsoft: content-indexing values
- Microsoft: IFilter interface
- Microsoft: filter handlers
- Microsoft: HRESULT values
Looking for a different code? Search another status or error code.