bug: browser_screenshot has no painted frame in minimized or headless-ish Windows states
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, andbrowser_evaluatesucceeded.- 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
- Run Paseo Desktop 0.5.2 on Windows with Browser tools enabled. The test machine used a local console session, not RDP.
- Confirm the Windows display remains active, then minimize the Paseo window.
- From an agent, create a background tab with
browser_new_tab({ url: "https://example.com" }). - Wait for the URL, take a snapshot, and evaluate the page state.
- Call
browser_screenshot({ fullPage: false })twice, thenbrowser_screenshot({ fullPage: true }). - Restore and foreground the Paseo window without changing other system settings.
- Create another background
https://example.comtab and repeat step 4 and step 5.
Raw page state in both the failed and successful A/B runs:
{
"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 secondsSuccessful 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 PNGWhere 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/BAgent 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.
Source: getpaseo/paseo