What does HRESULT 0x80040E1C (DB_E_GOALREJECTED) mean?

 
Previous Next
DB_E_NEWLYINSERTED DB_E_UNSUPPORTEDCONVERSION

DB_E_GOALREJECTED

Meaning

Windows documents DB_E_GOALREJECTED as “Goal was rejected because no nonzero weights were specified for any goals supported. Current goal was not changed”. Here, an optimization-goal request contains no nonzero weight for any goal the provider supports, so the current goal remains unchanged.

Relevant OLE DB contract

This result must be interpreted against this contract: an OLE DB command moves through explicit states: command definition, properties and parameters are established before optional preparation and execution; dialect, query-tree and optimizer contracts are provider-specific and should be inferred only from reported capabilities.

Diagnostic sequence

  1. Capture this result immediately at the native OLE DB return and obtain the current OLE DB error object before another COM call replaces thread error information.
  2. Identify the exact stage: an optimization-goal request contains no nonzero weight for any goal the provider supports, so the current goal remains unchanged.

Specific conditions that produce it

  • Cause 1: all supplied weights are zero.
  • Cause 2: nonzero weights are assigned only to goals unsupported by the provider.
  • Cause 3: a mapping bug sends weights under the wrong goal identifiers.

Evidence to collect before changing the system

When it involves command text, parameter values, object names and query-plan details, record types, lengths, hashes or redacted identifiers instead of secrets or full business data.

  • Evidence 1: the full goal identifier and weight array.
  • Evidence 2: the provider's supported optimization goals.
  • Evidence 3: the previous active goal, which must remain unchanged after rejection.

Corrective actions

  • Action 1: query supported goals before constructing weights.
  • Action 2: ensure at least one supported goal has a nonzero weight.
  • Action 3: preserve the previous optimizer configuration when a new goal is rejected.

Retry and recovery policy

Retry rule: retry after supplying a meaningful nonzero weight for a supported goal.

Difference from related HRESULT values

DB_E_LIMITREJECTED concerns rejected resource limits, while DB_E_GOALREJECTED concerns an unusable optimization-goal weighting.

Practical incident

A tuning UI enables only a provider-unsupported response-time goal and sets all other weights to zero; capability-aware mapping avoids it.

Official Microsoft references


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