| Previous | Next |
| DB_E_ALTERRESTRICTED | DB_E_NOCONSTRAINT |
DB_E_RESOURCENOTSUPPORTED
Requested object type is not supported by the provider
Exact value and result class
DB_E_RESOURCENOTSUPPORTED has unsigned value 2147749534 (0x80040E9E) and signed 32-bit value -2147217762. AllStat describes it as “Requested object type is not supported by the provider”. In this result, the provider does not support binding or creating the requested OLE DB resource object type.
The high bit is set, so DB_E_RESOURCENOTSUPPORTED is a failure HRESULT. Its facility is 4 (FACILITY_ITF) and its low code is 3742 (0x0E9E). For DB_E_RESOURCENOTSUPPORTED, these fields identify an interface-defined result family; they do not identify the provider instance, method, object generation or partial effects.
Contract boundary
For DB_E_RESOURCENOTSUPPORTED, the OLE DB binder model maps URLs to row, rowset, stream or collection objects. For DB_E_RESOURCENOTSUPPORTED, URL scope, requested object type, bind flags, asynchronous capability, locks and server reachability are independent parts of the binding contract.
Investigation of DB_E_RESOURCENOTSUPPORTED should start with the binder or session, normalized URL, requested GUID/object type and DBBINDURLSTATUS result. Capture DB_E_RESOURCENOTSUPPORTED before ADO, ATL, .NET or a database abstraction layer replaces the native HRESULT with a generic exception.
Evidence to collect
A useful DB_E_RESOURCENOTSUPPORTED event records provider CLSID and version, process architecture, interface IID and method, object correlation ID, transaction state and the immediately preceding HRESULT. When recording DB_E_RESOURCENOTSUPPORTED data involving URLs containing credentials, tenant paths and remote object names, use types, lengths, hashes or redacted identifiers rather than secrets or complete business data.
- Evidence 1 for
DB_E_RESOURCENOTSUPPORTED: requested object GUID and bind flags. - Evidence 2 for
DB_E_RESOURCENOTSUPPORTED: provider object-type capabilities. - Evidence 3 for
DB_E_RESOURCENOTSUPPORTED: actual type available for the URL.
Conditions that specifically lead to this result
- Cause 1 for
DB_E_RESOURCENOTSUPPORTED: the requested GUID names an unsupported row, rowset, stream or collection type. - Cause 2 for
DB_E_RESOURCENOTSUPPORTED: the provider supports the URL but exposes a different object model. - Cause 3 for
DB_E_RESOURCENOTSUPPORTED: a client assumes optional row-object capabilities.
Diagnostic sequence
- Capture raw
0x80040E9Eand symbolicDB_E_RESOURCENOTSUPPORTEDat the native call boundary. - Identify the exact failing stage for
DB_E_RESOURCENOTSUPPORTED: the provider does not support binding or creating the requested OLE DB resource object type. - Retrieve all OLE DB error records for
DB_E_RESOURCENOTSUPPORTEDbefore another COM call replaces thread error information. - Compare the live object state and provider-granted capabilities with the input that produced
DB_E_RESOURCENOTSUPPORTED. - Reduce the
DB_E_RESOURCENOTSUPPORTEDoperation to the smallest case that preserves the same binder contract. - Apply one evidence-backed correction for
DB_E_RESOURCENOTSUPPORTEDand verify that the result is not merely replaced by a neighboring HRESULT.
Retry and recovery
Retry rule for DB_E_RESOURCENOTSUPPORTED: retry only with a supported resource type or provider. A DB_E_RESOURCENOTSUPPORTED retry is safe only when the relevant input, object generation, capability or external state has changed. Before replaying a modifying call that returned DB_E_RESOURCENOTSUPPORTED, determine whether rows, schema objects or URL resources were partially created or changed.
Do not turn DB_E_RESOURCENOTSUPPORTED into an unbounded retry loop. Preserve cancellation for DB_E_RESOURCENOTSUPPORTED and use a fresh provider object when the failed call may have left local state ambiguous.
Corrective actions
- Action 1 for
DB_E_RESOURCENOTSUPPORTED: request a supported object type. - Action 2 for
DB_E_RESOURCENOTSUPPORTED: adapt through a documented rowset or stream path. - Action 3 for
DB_E_RESOURCENOTSUPPORTED: select another provider when the resource type is essential.
Practical scenario
A client requests a collection rowset from a provider that exposes only row streams; choosing the stream contract prevents DB_E_RESOURCENOTSUPPORTED. Keeping DB_E_RESOURCENOTSUPPORTED with the method and object state makes this scenario diagnosable instead of reducing it to “database error”.
Developer and operations guidance
Code handling DB_E_RESOURCENOTSUPPORTED should release COM objects in ownership order, retain per-row, per-column or per-property statuses, and log granted capabilities rather than only requested options. While handling DB_E_RESOURCENOTSUPPORTED, opaque values such as HACCESSOR, HROW, HCHAPTER, DBID components and provider handles must remain scoped to the object that issued them.
Operational dashboards for DB_E_RESOURCENOTSUPPORTED should group by provider version, interface, method and normalized failure stage. A DB_E_RESOURCENOTSUPPORTED event must not expose passwords, tokens, full connection strings, unrestricted command text or raw row contents.
Difference from nearby HRESULT values
DB_E_NOTCOLLECTION means the provider supports collections but this resource is not one, while DB_E_RESOURCENOTSUPPORTED means the object type is unsupported. Telemetry and remediation for DB_E_RESOURCENOTSUPPORTED should keep these outcomes distinct.
Official Microsoft references
- Microsoft: direct binding in OLE DB — official documentation relevant to
DB_E_RESOURCENOTSUPPORTED. - Microsoft: OLE DB root binder object — official documentation relevant to
DB_E_RESOURCENOTSUPPORTED. - Microsoft: OLE DB row objects — official documentation relevant to
DB_E_RESOURCENOTSUPPORTED.
Looking for a different code? Search another status or error code.