What does HRESULT 0x88990010 (D2DERR_UNSUPPORTED_VERSION) mean?

 
Previous Next
D2DERR_MAX_TEXTURE_SIZE_EXCEEDED D2DERR_BAD_NUMBER

D2DERR_UNSUPPORTED_VERSION

D2DERR_UNSUPPORTED_VERSION belongs to Direct2D runtime, version, or lower-system failure. The application requested a Direct2D version or interface level unavailable on the current runtime or device path. The diagnostic goal for D2DERR_UNSUPPORTED_VERSION is to identify the first rejecting object and transition, not merely the final high-level symptom.

What the status establishes

For D2DERR_UNSUPPORTED_VERSION, internal, unsupported-version, and mapped Win32 errors sit at different layers. When D2DERR_UNSUPPORTED_VERSION is returned, one can require rebuilding a Direct2D instance, another means the requested interface contract is unavailable, and the third demands recovery of a lower system status. The exact factory, device, method, and nested result determine which response is valid in the D2DERR_UNSUPPORTED_VERSION path.

For D2DERR_UNSUPPORTED_VERSION, inspect the following boundary: factory or interface creation and the version-specific feature being requested.

Build a useful incident record

RecordWhy it matters here
OS build and Direct2D DLL versionFor D2DERR_UNSUPPORTED_VERSION, recording OS build and Direct2D DLL version separates the Direct2D runtime, version, or lower-system failure boundary from a later wrapper symptom.
Requested interface IID or feature versionIn D2DERR_UNSUPPORTED_VERSION diagnostics, recording requested interface IID or feature version ties the HRESULT to the Direct2D runtime, version, or lower-system failure boundary rather than to the final visible failure.
Device feature level and creation flagsComparing device feature level and creation flags shows whether D2DERR_UNSUPPORTED_VERSION follows input, object state, or environment.
Fallback interface resultPreserving fallback interface result provides the evidence needed to test this distinction: iNSUFFICIENT_DEVICE_CAPABILITIES concerns GPU capability after the API exists; UNSUPPORTED_VERSION concerns the requested Direct2D contract.

Reduce the scenario safely

Use a fresh factory and minimal operation, record runtime and interface versions, enable the debug layer, and capture device-removal or Win32 evidence immediately in the D2DERR_UNSUPPORTED_VERSION path. For D2DERR_UNSUPPORTED_VERSION, do not apply render-target recreation to errors that are not documented as target loss.

  1. For D2DERR_UNSUPPORTED_VERSION, queryInterface progressively for the needed version.
  2. When D2DERR_UNSUPPORTED_VERSION is returned, use capability checks before version-specific calls.
  3. Test the baseline Direct2D interface in the D2DERR_UNSUPPORTED_VERSION path.
  4. For D2DERR_UNSUPPORTED_VERSION, avoid shipping private system Direct2D binaries.

Interpret the controls

TestInterpretationHold constant
Same environment, reduced inputIf D2DERR_UNSUPPORTED_VERSION disappears with a smaller faithful case, complexity within Direct2D runtime, version, or lower-system failure is implicated.For D2DERR_UNSUPPORTED_VERSION, keep OS build and Direct2D DLL version fixed while simplifying device feature level and creation flags.
Same input, fresh object generationIf D2DERR_UNSUPPORTED_VERSION changes after rebuilding state, examine ownership across the caller’s object graph, custom effect or renderer, Direct2D validation layer, backing device, and deferred draw boundary.For D2DERR_UNSUPPORTED_VERSION, place requested interface IID or feature version on the timeline of the last successful transition.
Same operation on a controlled second pathIf D2DERR_UNSUPPORTED_VERSION follows one environment, the failure is not explained by source data alone.For D2DERR_UNSUPPORTED_VERSION, compare adapter and feature level, factory and device generations, target identity, debug-layer output, and thread ownership while preserving fallback interface result.

Keep neighboring failures separate

INSUFFICIENT_DEVICE_CAPABILITIES concerns GPU capability after the API exists; UNSUPPORTED_VERSION concerns the requested Direct2D contract. For D2DERR_UNSUPPORTED_VERSION, do not respond with a universal render-target recreation loop unless the returned status specifically documents device-loss recovery; graph, property, numeric, lifetime, and print-state errors require correcting their contract.

Prove the correction

A correction for D2DERR_UNSUPPORTED_VERSION should let the operation at the Direct2D runtime, version, or lower-system failure boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “QueryInterface progressively for the needed version” and confirm that the following lifecycle step also succeeds. For D2DERR_UNSUPPORTED_VERSION, keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.

Technical references

When D2DERR_UNSUPPORTED_VERSION is returned, these references define the public API family, object model, or error list used to interpret this status.


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