How to fix Error 690 on Windows 11

Troubleshooting Guide: Error 690 — Debugger Cannot Provide Handle

Why This Error Happens

Error 690 occurs when the Windows debugging subsystem (WinDbg or a Visual Studio-attached debugger) fails to obtain a valid handle to the target process, typically because the process has insufficient access rights, is protected (e.g., by anti-cheat, DRM, or a security product), or the debugger lacks elevated privileges. This can also happen if the process handle table has become corrupted due to a mismatched debug engine version, or if another debugger/process is already holding an exclusive handle to the target. In Windows 11, stricter kernel-level protections (VBS/HVCI) and Protected Process Light (PPL) enforcement are common contributors to this failure.

Step-by-Step Resolution Guide

  1. Run the Debugger as Administrator
    Right-click WinDbg, Visual Studio, or your debugging tool shortcut → Run as administrator. Insufficient token privileges are the most common cause of Error 690.

  2. Check for Conflicting Debug Sessions
    Open Task Manager → Details tab, locate the target process, and confirm no other debugger (e.g., a second WinDbg instance or windbgx.exe) is already attached. End conflicting sessions via taskkill /PID <pid> /F if needed.

  3. Disable Virtualization-Based Security (VBS) Temporarily
    Go to Windows Security → Device Security → Core Isolation and turn off Memory Integrity. Restart the machine. VBS/HVCI can block debug handle duplication for protected processes.

  4. Enable Debug Privileges via Group Policy
    Run gpedit.msc → Computer Configuration → Windows Settings → Security Settings → Local Policies → User Rights Assignment → Debug Programs. Ensure your user account or group is listed, then log off/on.

  5. Repair or Reinstall Debugging Tools for Windows
    If the issue persists, uninstall WinDbg/Debugging Tools via Settings → Apps → Installed Apps, then reinstall the latest version from the Windows SDK to rule out a corrupted debug engine (dbgeng.dll).

Alternative or Verification Steps

  • Verify the fix: Reattach the debugger to the same process; if Error 690 no longer appears and you can set breakpoints/inspect memory, the handle issue is resolved.
  • Alternative: If the target process is protected (anti-cheat, DRM, or a PPL-signed service), use kernel-mode debugging (via a second machine and kd.exe) instead of user-mode attachment, since PPL processes cannot be opened directly even with admin rights.