What does HRESULT 0x88990004 (D2DERR_SCANNER_FAILED) mean?

 
Previous Next
D2DERR_UNSUPPORTED_OPERATION D2DERR_SCREEN_ACCESS_DENIED

D2DERR_SCANNER_FAILED

The scope of D2DERR_SCANNER_FAILED is Direct2D geometry and numeric validation. The geometry scanner could not process the supplied geometry data. Keep 0x88990004 beside the returning method because a wrapper can replace this distinction with a generic subsystem message.

Keep neighboring failures separate

D2DERR_BAD_NUMBER identifies invalid numeric input broadly; SCANNER_FAILED is tied to geometry processing. 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.

What the status establishes

Direct2D geometry processing depends on finite coordinates, valid matrices, closed geometry sinks, fill rules, and tolerances. A scanner failure identifies geometry processing, while a bad-number result can be raised by many APIs before rasterization. Preserve the path segments and numeric inputs at the first method that rejects them.

Path geometry, tessellation, winding, numeric range, or sink construction before rasterization.

Evidence to preserve

  • Geometry type and serialized segments
  • Fill mode, transforms, tolerance, and bounds
  • NaN, infinity, extreme coordinates, or degenerate segments
  • The scanner-consuming API and deferred error point

Reduce the scenario safely

Build the geometry segment by segment with identity transform and moderate coordinates. Check every sink close result, then add the original transform, tolerance, and extreme values independently.

  1. Rebuild the path segment by segment.
  2. Test without transforms and with moderate coordinates.
  3. close every geometry sink successfully.
  4. Compare fill and stroke operations.

Technical references


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