| 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
- 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.
- 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.