| Previous | Next |
| QUERY_E_TIMEDOUT | QUERY_E_INVALID_OUTPUT_COLUMN |
QUERY_E_DUPLICATE_OUTPUT_COLUMN
The projection contains a duplicate output column
QUERY_E_DUPLICATE_OUTPUT_COLUMN is HRESULT 0x80041608. Windows documents it as “One or more columns in the output column list is a duplicate.”
Operation and state
This result belongs to legacy Windows query execution and is returned while validating the SELECT/output schema returned in each rowset row. The exact condition is: the same canonical property identity appearing more than once, possibly through aliases or reused fragments.
Failure paths to examine
A failed command or empty rowset is only the visible symptom; it does not identify which restriction, projection, sort, scope, timeout or catalog state violated the query contract.
Data to collect first
- Record the source and normalization path of ordered projection, not only its display form.
- Record aliases before releasing the relevant objects.
- Associate contributing query fragment with the exact UTC timestamp and correlation identifier.
- Compare failing and known-good values for accessor ordinal layout under the same provider or handler version.
- Record the source and normalization path of provider command text and dialect, not only its display form.
Redact private literals if necessary, but keep clause boundaries, canonical properties, parameter types, dialect and parser or provider offsets.
Step-by-step diagnosis
- Capture ordered projection and canonical identities at the call boundary that returns this result.
- Confirm the operation reached validating the SELECT/output schema returned in each rowset row with the intended aliases.
- canonicalize every requested property and trace which query fragment contributed each occurrence.
Begin with a known-good minimal command against the same catalog and restore projection, restriction, sorting, grouping and scope one component at a time.
Continuation policy
Keep one authoritative column and update ordinal-based bindings deliberately. Backoff helps only with measured transient load or timeout; it cannot repair invalid clauses, projection metadata, scopes or command state.
Limits of this HRESULT
It does not by itself prove catalog corruption, service outage, access denial or absence of matches; the query stage and provider records must identify the failing clause or state.
Distinguishing similar results
QUERY_E_INVALID_OUTPUT_COLUMN rejects an unknown or unsupported identity; this value rejects repetition.
Developer and administrator guidance
Retain final command text, dialect, catalog generation, parameter values, timeout, cancellation state and chained OLE DB error records. Before rebuilding the catalog or restarting the provider, reproduce the minimal command and preserve its chained errors.
Operational case
A default projection and a caller template both add the item URL under different aliases. Canonical identity comparison removes the duplicate safely.
Official Microsoft references
Looking for a different code? Search another status or error code.
