You got a bugcheck with STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET, which is Windows-speak for "the graphics kernel got a monitor descriptor it refuses to parse." The numeric code is 0xC01E032A. It usually lands as a BSOD from dxgkrnl.sys or a full-screen freeze with a black second monitor.
What's actually happening here is that dxgkrnl.sys — the DirectX graphics kernel subsystem — feeds EDID data from your display into the video port driver. EDID is the little 128-byte (or 256-byte) block your monitor hands over on the DDC channel describing its resolution, refresh rates, color depth, and timing modes. If that block is truncated, has a bad checksum, or references a descriptor format the driver doesn't recognize, the port driver returns STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET instead of a valid mode list. The kernel bugchecks rather than continue with no usable display mode.
This shows up most on DisplayPort chains through a KVM or dock, and on cheap HDMI cables that were fine at 1080p60 but choke the moment you push 1440p144 or 4K.
Cause 1: Bad or marginal display cable (most common)
The DDC line carries EDID over pins 12 (data) and 15 (clock) on VGA, pin 7 on HDMI, and pin 13/14 on DisplayPort. Those lines are thin, unterminated, and extremely sensitive to cable quality. A cable that delivers pixels fine can still garble EDID because EDID is read at 100 kHz and any impedance mismatch along the run corrupts the checksum.
Trigger scenario: you swapped in a longer DisplayPort cable, added a KVM between the GPU and monitor, or plugged into a monitor with a passive DP-to-HDMI adapter. Windows boots, then crashes the moment the second display enumerates.
The real fix is to bypass everything between the GPU and the monitor:
- Shut down. Don't just reboot — pull power so the GPU releases the link.
- Remove any adapter, KVM, dock, or switch box.
- Use a known-good cable under 2 meters. If you can, use the cable that shipped with the monitor.
- Boot. If the bugcheck is gone, you've found it. Replace the cable or dock.
- If you need the KVM, use an active one rated for your resolution and refresh rate. Passive DisplayPort KVMs and MST hubs are the worst offenders.
Skip the "reseat the cable" advice you'll see on forums. If reseating fixed it, the connector was physically loose, which is rare. Nine times out of ten the cable itself is the problem and needs to go in the bin.
Cause 2: GPU driver mismatch or corrupted EDID cache
Windows caches EDID per monitor in the registry. It also has driver-side parsing logic that varies wildly between vendor versions. If you updated the GPU driver while a monitor was plugged in, or you're running a driver that predates your monitor (common with Nvidia Studio drivers on new 4K/240 Hz panels), the cached descriptor may no longer match what the driver expects to parse.
Trigger scenario: you moved a monitor from an AMD box to an Nvidia box without wiping the display cache, or you did a Windows feature update (22H2 → 23H2) that rebuilt the display stack mid-session.
The fix is to clear the cache and reinstall cleanly:
# Run as admin. Clears per-monitor cached EDID and mode data.
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration" /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity" /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\ScaleFactors" /f
Then boot into Safe Mode, run DDU (Display Driver Uninstaller), and install the vendor driver fresh. Don't install "just the driver" — grab the full package so the monitor INF and color profile come with it.
One caveat: on some OEM laptops the monitor INF is baked into a Windows Update package. If DDU removes it, Windows will reapply the same broken INF on next boot. In that case, pause Windows Update before you reboot, install the vendor driver, then unpause.
Cause 3: Monitor EDID is genuinely malformed
Some monitors ship with broken EDID. It's not common, but it's real — certain AOC and generic 4K panels from 2018–2020 have an extension block with a bad checksum, and the DisplayID 2.0 block on a few 2023 OLEDs advertises a timing mode that Nvidia drivers reject outright. Windows can't fix bad EDID. It can only refuse to load the mode.
Trigger scenario: the crash only happens on one specific monitor, and it follows that monitor to any PC you plug it into. Or it only happens at a specific refresh rate (say 240 Hz but not 120 Hz).
You have two options, and yes, both are annoying:
- Install the monitor's ICC/INF profile from the manufacturer. Some vendors include a corrected EDID override in their driver package. This is the clean fix.
- Install an EDID override manually. Tools like
CRU(Custom Resolution Utility by ToastyX) let you clamp the descriptor to a known-good timing set. Export the current EDID, patch it, and import. This is the fix when the vendor hasn't shipped one.
If it's a laptop internal panel with bad EDID, you're in for a fight. The panel firmware usually can't be updated. Some people work around it by forcing DisplayPort link training to a lower rate in the BIOS, but that's model-specific and I can't give you a universal recipe.
If you're seeing this error on a VM with GPU passthrough, stop. Your problem is almost certainly the virtual display adapter, not the guest OS. Fix the host-side EDID emulation first.
Quick-reference summary
| Cause | Symptom | Fix | Effort |
|---|---|---|---|
| Bad cable / KVM / adapter | Crash on boot with all displays connected; follows the cable | Bypass the chain, use a short known-good cable | Low |
| Driver mismatch or cached EDID | Started after driver update or Windows feature update | Clear GraphicsDrivers registry keys + DDU reinstall | Medium |
| Malformed monitor EDID | Follows one specific monitor; happens at one refresh rate | Install vendor INF or patch EDID with CRU | High |
Work them in order. Cable first — it's ten minutes and it's right most of the time. Driver second. EDID patching only if the other two are ruled out and the crash demonstrably follows the monitor.