What does HRESULT 0x80041790 (PSINK_E_QUERY_ONLY) mean?

 
Previous Next
WBREAK_E_INIT_FAILED PSINK_E_INDEX_ONLY

PSINK_E_QUERY_ONLY

A phrase-sink operation is available only during query processing

PSINK_E_QUERY_ONLY is HRESULT 0x80041790 (-2147215472 signed; 2147751824 unsigned). Its severity bit is 1, facility is 4 (FACILITY_ITF for these values), and code field is 0x1790. For PSINK_E_QUERY_ONLY, standard HRESULT severity rules classify the value as a failure. AllStat describes the value as “Feature only available in query mode.”

State represented by the HRESULT

PSINK_E_QUERY_ONLY belongs to sending phrase information to IPhraseSink while the pipeline is operating in index mode. The decisive interpretation is that the requested sink behavior depends on query expansion semantics. For PSINK_E_QUERY_ONLY, keep the symbolic constant and method stage together in logs; its hexadecimal value alone cannot identify the owning transition or input.

For PSINK_E_QUERY_ONLY, phrase-sink callbacks differ between query and index processing. In the PSINK_E_QUERY_ONLY investigation, the attachment type and pipeline mode define whether a callback is legal. This context narrows the responsible component without replacing the code-specific checks below.

Likely triggers

  • At step 1 for PSINK_E_QUERY_ONLY, query alternatives are emitted to an index-time sink
  • At step 2 for PSINK_E_QUERY_ONLY, mode flags are inverted
  • At step 3 for PSINK_E_QUERY_ONLY, a shared sink instance crosses query and indexing pipelines

The useful hypothesis for PSINK_E_QUERY_ONLY must explain both sending phrase information to IPhraseSink while the pipeline is operating in index mode and the documented condition. Compare the failing case with a control that preserves phrase-sink method and attachment type and changes only index/query mode at construction; this prevents unrelated environment differences from dominating the PSINK_E_QUERY_ONLY test.

Data for diagnosis

  • PSINK_E_QUERY_ONLY: Phrase-sink method and attachment type.
  • PSINK_E_QUERY_ONLY: Index/query mode at construction.
  • PSINK_E_QUERY_ONLY: Originating word-breaker call.
  • PSINK_E_QUERY_ONLY: Instance and thread ownership.

For PSINK_E_QUERY_ONLY, capture phrase-sink method and attachment type before releasing objects, closing handles or reconnecting. Retain the raw HRESULT with index/query mode at construction, component version, UTC timestamp and correlation ID. Bound the PSINK_E_QUERY_ONLY telemetry to diagnostic metadata because document content, credentials and unrestricted query text may be sensitive.

Investigation order

  1. Trace the sink from BreakText to the failing call. Associate this observation specifically with PSINK_E_QUERY_ONLY.
  2. Confirm whether the operation creates query alternatives or index tokens. Associate this observation specifically with PSINK_E_QUERY_ONLY.
  3. Use separate sink implementations for each mode. Associate this observation specifically with PSINK_E_QUERY_ONLY.
  4. Add a mode assertion before accepting the attachment. Associate this observation specifically with PSINK_E_QUERY_ONLY.

Change one variable per PSINK_E_QUERY_ONLY control run. Preserve the component version and target identity, then alter only the condition described as the requested sink behavior depends on query expansion semantics. This isolates whether PSINK_E_QUERY_ONLY is causal rather than merely repeatable.

Correct response

Route the feature to query mode or omit it from indexing. Retrying with the same sink mode is a programming error. For PSINK_E_QUERY_ONLY, record whether sending phrase information to IPhraseSink while the pipeline is operating in index mode produced any content, update or state transition before returning. If completion remains unknown, the PSINK_E_QUERY_ONLY path must not replay non-idempotent work until the owner confirms final state.

The retry gate for PSINK_E_QUERY_ONLY should be a concrete change in phrase-sink method and attachment type or index/query mode at construction. A timer alone cannot demonstrate that the PSINK_E_QUERY_ONLY contract condition has changed.

Scope of the signal

It does not indicate that the phrase text is too long or syntactically invalid. Without the call boundary for sending phrase information to IPhraseSink while the pipeline is operating in index mode, PSINK_E_QUERY_ONLY also cannot identify which wrapper or configuration layer introduced the condition.

Related HRESULT values

WBREAK_E_QUERY_ONLY comes from the breaker feature; PSINK_E_QUERY_ONLY identifies phrase-sink mode enforcement. In PSINK_E_QUERY_ONLY telemetry, preserve neighboring constants separately because the same visible symptom may require a different caller action, owner or recovery gate.

Developer and administrator actions

  • For PSINK_E_QUERY_ONLY, check At the code boundary, keep phrase-sink method and attachment type beside the returned HRESULT.
  • For PSINK_E_QUERY_ONLY, check In telemetry, correlate index/query mode at construction with the target and component generation.
  • For PSINK_E_QUERY_ONLY, check For regression coverage, force the documented condition: the requested sink behavior depends on query expansion semantics.
  • For PSINK_E_QUERY_ONLY, check For operations staff, expose the corrective state change rather than a generic retry button.
  • For PSINK_E_QUERY_ONLY, check After remediation, validate one known-good control and the original failing case.

Example in a pipeline

A custom breaker emits a query-time replacement phrase while building the catalog. A mode-aware adapter suppresses that attachment at index time. In this scenario, handling PSINK_E_QUERY_ONLY at its real contract boundary prevents the application from collapsing a precise state into an unhelpful generic “search failed” message.

Official Microsoft references


Looking for a different code? Search another status or error code.