Windows 10 Computer Use screenshot fails: SetIsBorderRequired failed (0x80004002)

Resolved 💬 3 comments Opened May 31, 2026 by ShawnXanz Closed May 31, 2026

Summary

On Windows 10 Pro 22H2, Codex Desktop Computer Use can connect to the Windows Computer Use helper and perform non-screenshot operations such as listing windows/apps, reading accessibility text, activating a window, and sending keyboard input. However, any Computer Use path that requests a screenshot fails with:

SetIsBorderRequired failed: 不支持此接口 (0x80004002)

This appears to be a Windows 10 compatibility issue: the helper calls GraphicsCaptureSession.IsBorderRequired / SetIsBorderRequired, but this API is documented as introduced in 10.0.20348.0, while current Windows 10 client 22H2 is build 19045.

Environment

  • Codex Desktop install source: Microsoft Store
  • Codex Desktop version: 26.527.3686.0
  • Computer Use plugin/cache version observed: 26.527.31326
  • OS: Windows 10 Pro 22H2
  • OS build: 19045.6466
  • Get-ComputerInfo: WindowsProductName=Windows 10 Pro, OsBuildNumber=19045
  • HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion: DisplayVersion=22H2, CurrentBuild=19045, UBR=6466

What works

After connecting to the existing Computer Use named pipe, the following operations work:

  • sky.list_apps() succeeds and returns applications.
  • sky.list_windows() succeeds and returns active windows.
  • sky.get_window_state({ include_screenshot: false, include_text: true }) succeeds for at least Microsoft Paint and returns an accessibility tree.
  • sky.activate_window(...) succeeds.
  • sky.press_key(...) succeeds.

Example window enumeration included a Weixin/WeChat window:

{
  "app": "process:K:\\Applications\\Weixin\\Weixin.exe",
  "id": 854470,
  "title": "微信"
}

What fails

Requesting a screenshot through Computer Use fails. Example call:

await sky.get_window_state({
  window: targetWindow,
  include_screenshot: true,
  include_text: false,
});

Observed error:

SetIsBorderRequired failed: 不支持此接口 (0x80004002)

This blocks Computer Use screenshot-based workflows and coordinate input that depends on a fresh screenshot. Accessibility-only reads still work when the app exposes useful UIA text, but apps such as Weixin/WeChat expose only a render container (MMUIRenderSubWindow), so screenshot support is required for practical use.

Expected behavior

On Windows 10 build 19045, Computer Use should either:

  1. avoid calling SetIsBorderRequired / IsBorderRequired when that interface is unavailable, and continue capture with the default capture border behavior; or
  2. clearly report that screenshot capture requires a newer Windows build, while keeping non-screenshot Computer Use operations available.

Actual behavior

Computer Use screenshot capture fails with SetIsBorderRequired failed: 不支持此接口 (0x80004002), even though the helper pipe and non-screenshot operations are otherwise usable.

Suspected cause

Microsoft documents GraphicsCaptureSession.IsBorderRequired as introduced in device family version 10.0.20348.0 / UniversalApiContract v12. Windows 10 Pro 22H2 client is currently build 19045, so calling this property appears to return E_NOINTERFACE (0x80004002).

The helper likely needs a runtime API/contract check and fallback path that skips SetIsBorderRequired on older Windows 10 client builds.

Related issues

These look related to Windows Computer Use helper/native-pipe availability, but this issue is specifically about the second-stage screenshot failure after the helper is reachable:

  • #25220
  • #25301
  • #25216
  • #25194

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗