Computer Use screenshot fails on Windows 10 22H2 with SetIsBorderRequired failed: E_NOINTERFACE / 0x80004002

Open 💬 1 comment Opened Jun 11, 2026 by Kregion

What version of the Codex App are you using (From “About Codex” dialog)?

26.608.1337

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Microsoft Windows NT 10.0.19045.0 x64

What issue are you seeing?

Computer Use can connect to the Windows helper and works for non-screenshot operations, but screenshot capture fails on Windows 10 22H2.

What works:

  • sky.list_apps() works.
  • Computer Use can launch Notepad.
  • Computer Use can inspect the accessibility tree with include_screenshot: false, include_text: true.
  • Computer Use can focus the Notepad editor.
  • Computer Use can type text into Notepad.

What fails:

Screenshot capture fails when calling:

await sky.get_window_state({
  window: targetWindow,
  include_screenshot: true
});
or when relying on the default screenshot behavior.
Full error message:
SetIsBorderRequired failed: 不支持此接口 (0x80004002)
English meaning:
SetIsBorderRequired failed: No such interface supported (0x80004002)
Expected behavior:
Computer Use should capture the window screenshot successfully, or gracefully fall back to a compatible capture mode if borderless capture is not supported.
Actual behavior:
The screenshot request fails completely with the error above.
Suspected root cause:
The helper appears to call GraphicsCaptureSession.IsBorderRequired / SetIsBorderRequired.
According to Microsoft documentation, GraphicsCaptureSession.IsBorderRequired was introduced in Windows 10 version 2104 / build 20348 / UniversalApiContract v12.
My machine is Windows 10 22H2 build 19045, where this property appears to be unavailable, so the WinRT call returns E_NOINTERFACE / 0x80004002.
References:
https://learn.microsoft.com/en-us/uwp/api/windows.graphics.capture.graphicscapturesession.isborderrequired
https://learn.microsoft.com/en-us/uwp/api/windows.foundation.metadata.apiinformation.ispropertypresent
Suggested fix:
Before setting GraphicsCaptureSession.IsBorderRequired, check whether the property exists, for example with ApiInformation.IsPropertyPresent(...).
Alternatively, catch E_NOINTERFACE / 0x80004002 from SetIsBorderRequired and continue with the default capture behavior.
Workaround:
Using accessibility-only state works:
await sky.get_window_state({
  window: targetWindow,
  include_screenshot: false,
  include_text: true
});
However, this prevents visual screenshot-based interaction, which is important for apps with weak accessibility support.

### What steps can reproduce the bug?

1. Run Codex App on Windows 10 22H2 build 19045.

2. Enable or use the Computer Use plugin.

3. Start a new Codex thread and ask it to use Computer Use to open Notepad.

4. Let Computer Use connect to the Windows helper and list apps:

```js
globalThis.apps = await sky.list_apps();
Launch Notepad:
const notepad = apps.find((app) =>
  app.displayName === "记事本" || /notepad\.exe/i.test(app.id)
);

await sky.launch_app({ app: notepad.id });
Select the Notepad window:
globalThis.apps = await sky.list_apps();
const targetApp = apps.find((app) =>
  app.displayName === "记事本" || /notepad\.exe/i.test(app.id)
);

globalThis.targetWindow = await sky.get_window(targetApp.windows[0]);
Call get_window_state with screenshot enabled:
await sky.get_window_state({
  window: targetWindow,
  include_screenshot: true
});
The call fails with:
SetIsBorderRequired failed: 不支持此接口 (0x80004002)
For comparison, the same window works if screenshot capture is disabled:
await sky.get_window_state({
  window: targetWindow,
  include_screenshot: false,
  include_text: true
});

### What is the expected behavior?

_No response_

### Additional information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗