| Previous | Next |
| D2DERR_INVALID_GRAPH_CONFIGURATION | D2DERR_CYCLIC_GRAPH |
D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION
D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION belongs to Direct2D custom-effect transform graphs. Direct2D detected an invalid state inside the effect graph after or beyond public graph validation. The diagnostic goal for D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION is to identify the first rejecting object and transition, not merely the final high-level symptom.
Read the HRESULT in context
For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, a transform graph must have valid node identities, supported input counts, complete input mappings, one reachable output, and no cycles. When D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION is returned, public graph configuration errors usually point to caller construction; an internal graph error warrants preserving a minimal valid-looking graph and runtime evidence rather than inventing a missing public rule.
For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, inspect the following boundary: runtime-created graph state, custom effect callbacks, and possible Direct2D defect.
A minimal test sequence
Build one pass-through node, validate it, and add one node or edge per step in the D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION path. For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, log input count, edge endpoints, effect-input mapping, output selection, and topological order before committing the graph.
- For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, verify the public graph with a minimal sample.
- When D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION is returned, recreate the effect and device context.
- Remove custom transforms until the internal failure disappears in the D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION path.
- For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, test on another supported OS build or driver.
Capture before changing state
| Record | Why it matters here |
|---|---|
| Public graph definition that preceded the error | Preserving public graph definition that preceded the error provides the evidence needed to test this distinction: the public INVALID_GRAPH_CONFIGURATION is the first suspect for caller-defined edges; this code warrants preserving evidence of a deeper runtime inconsistency. |
| Debug-layer output and OS build | For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, recording debug-layer output and OS build separates the Direct2D custom-effect transform graphs boundary from a later wrapper symptom. |
| Custom effect implementation and registration XML | In D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION diagnostics, recording custom effect implementation and registration XML ties the HRESULT to the Direct2D custom-effect transform graphs boundary rather than to the final visible failure. |
| Device/context recreation result | Comparing device/context recreation result shows whether D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION follows input, object state, or environment. |
Three diagnostic branches
| Test | Interpretation | Hold constant |
|---|---|---|
| Same environment, reduced input | If D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION disappears with a smaller faithful case, complexity within Direct2D custom-effect transform graphs is implicated. | For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, keep public graph definition that preceded the error fixed while simplifying custom effect implementation and registration XML. |
| Same input, fresh object generation | If D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION 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_INVALID_INTERNAL_GRAPH_CONFIGURATION, place debug-layer output and OS build on the timeline of the last successful transition. |
| Same operation on a controlled second path | If D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION follows one environment, the failure is not explained by source data alone. | For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, compare adapter and feature level, factory and device generations, target identity, debug-layer output, and thread ownership while preserving device/context recreation result. |
Common wrong turns
The public INVALID_GRAPH_CONFIGURATION is the first suspect for caller-defined edges; this code warrants preserving evidence of a deeper runtime inconsistency. For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, 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.
Regression verification
A correction for D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION should let the operation at the Direct2D custom-effect transform graphs boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “Verify the public graph with a minimal sample” and confirm that the following lifecycle step also succeeds. For D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION, keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.
Technical references
When D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION is returned, these references define the public API family, object model, or error list used to interpret this status.
- Microsoft: Direct2D error codes.
- Microsoft: Direct2D custom effects.
- Microsoft: ID2D1TransformGraph.
- Microsoft: Direct2D effect properties.
Looking for a different code? Search another status or error code.