#3824·paseo

bug: browser_screenshot has no painted frame in minimized or headless-ish Windows states

Author: NaruForgeCreated Aug 24, 2026Updated Sep 18, 2026
Labelsbugplatform:windowsp2triaged

What's broken

On Paseo Desktop for Windows, browser_screenshot cannot capture a background Browser tab in some headless-ish or minimized desktop states, although the same tab remains available to DOM/accessibility automation.

Expected: an agent-created background Browser tab remains paintable for screenshots while the Paseo window is inactive or minimized.

Actual in the minimized A/B below:

  • browser_wait, browser_snapshot, and browser_evaluate succeeded.
  • Two viewport screenshots returned The tab has not painted yet. Retry the screenshot.
  • A full-page screenshot timed out after about 15 seconds.
  • Restoring and foregrounding only the Paseo window, then repeating with a fresh background tab, made both viewport screenshots and the full-page screenshot succeed immediately.

No display, power, driver, or remote-access setting was changed between the failed minimized run and the successful restored run.

Possibly relevant prior work: #2907 says inactive tabs use a permanent paintable surface and reports first-attempt minimized-window captures, but its real-Electron QA was performed on macOS. This report is from Windows.

Direct test matrix

Run Remote viewer PnP monitor NVIDIA Display Active Paseo window Result
1 None HDMI dummy present Disabled Visible, not minimized Viewport failed twice; full-page timed out
2 Parsec connected Same HDMI dummy; ParsecVDA monitor absent Enabled Visible, not minimized Viewport twice and full-page succeeded
3 RustDesk connected; Parsec disconnected Same HDMI dummy; ParsecVDA monitor absent Enabled Visible, not minimized Viewport twice and full-page succeeded
4 None Same HDMI dummy; ParsecVDA monitor absent Enabled before and after Minimized Viewport failed twice; full-page timed out
5 None Same state as run 4 Enabled before and after Restored and foregrounded Viewport twice and full-page succeeded

Steps to reproduce

  1. Run Paseo Desktop 0.5.2 on Windows with Browser tools enabled. The test machine used a local console session, not RDP.
  2. Confirm the Windows display remains active, then minimize the Paseo window.
  3. From an agent, create a background tab with browser_new_tab({ url: "https://example.com" }).
  4. Wait for the URL, take a snapshot, and evaluate the page state.
  5. Call browser_screenshot({ fullPage: false }) twice, then browser_screenshot({ fullPage: true }).
  6. Restore and foreground the Paseo window without changing other system settings.
  7. Create another background https://example.com tab and repeat step 4 and step 5.

Raw page state in both the failed and successful A/B runs:

json
{
  "readyState": "complete",
  "hidden": false,
  "visibilityState": "visible",
  "innerWidth": 1280,
  "innerHeight": 800,
  "devicePixelRatio": 1,
  "title": "Example Domain",
  "href": "https://example.com/"
}

Failed run, 2026-08-25 08:04 KST:

browser_new_tab: success
browser_wait: URL match succeeded
browser_snapshot: success, title "Example Domain", 9 nodes / 1 ref
browser_evaluate: returned the JSON above
browser_screenshot(fullPage: false): The tab has not painted yet. Retry the screenshot.
browser_screenshot(fullPage: false), retry: The tab has not painted yet. Retry the screenshot.
browser_screenshot(fullPage: true): browser host timeout after about 15 seconds

Successful run after restoring/foregrounding Paseo, 2026-08-25 08:09 KST:

browser_new_tab: success
browser_wait: URL match succeeded
browser_snapshot: success, title "Example Domain", 9 nodes / 1 ref
browser_evaluate: returned the JSON above
browser_screenshot(fullPage: false): success, 1280x800 PNG
browser_screenshot(fullPage: false), retry: success, 1280x800 PNG
browser_screenshot(fullPage: true): success, 1280x800 PNG

Where did this happen

Desktop (Electron)

Paseo version

0.5.2

OS version

Windows 11 Pro 64-bit, 10.0.26200 (build 26200)

Additional environment:

Session: local console session 1, Active; not RDP
DWM composition: Enabled
GPU: NVIDIA GeForce RTX 3070 Ti
NVIDIA driver: 591.86 (32.0.15.9186)
Active desktop in the minimized/restored A/B: 2560x1440, 32 bpp
Monitor: Generic Monitor (HDP-V104 HDMI dummy), Present=True
Physical LG monitors: Present=False
ParsecVDA monitor: Present=False
NVIDIA Display Attached: Yes
NVIDIA Display Active: Enabled before and after both sides of the minimized/restored A/B

Agent provider

Codex

Provider configuration

Paseo-provided local browser_* tools. No custom browser host or provider configuration. The provider version was not recorded.

Logs

Windows Electron log: %APPDATA%\Paseo\logs\main.log

The complete log content emitted around the failed and successful A/B consisted of these registration records; no screenshot failure or new DOM-attachment error was logged in either interval:

[2026-08-25 08:04:41.220] [info]  [browser-webview] registered {
  browserId: '0ed4c1ee-e6b1-4f84-b138-58b93bae33cf',
  webContentsId: 7,
  registeredBrowserIds: [ '0ed4c1ee-e6b1-4f84-b138-58b93bae33cf' ]
}
[2026-08-25 08:09:31.948] [info]  [browser-webview] registered {
  browserId: '40444571-bff8-4272-9320-170c02ef633a',
  webContentsId: 8,
  registeredBrowserIds: [ '40444571-bff8-4272-9320-170c02ef633a' ]
}

Screenshots or video

Not attached. This is an agent tool failure rather than a visual rendering defect in the visible UI; the exact tool responses and raw Electron log output are included above.