The screenshot that was always blank

A user shared a chat where the agent spent six minutes reloading a report that looked fine to them. Its screenshots after every scroll were bare background. How the chat's own log showed it, how the bug was reproduced in minutes, and the one-line cause fixed in 0.2.11.

21 October 2026QuorX v0.2.11testsplatformsresearch

QuorX checks its own work by looking at it. After it builds a page, the agent opens it, scrolls, clicks, and asks vision judges yes-or-no questions about each screenshot: "is the chart drawn?", "is the menu visible?". When the screenshot is wrong, everything built on it goes wrong too.

This is the story of a bug that made every screenshot below the top of a page come back empty, how a user's chat showed it, and how it was fixed.

What the user saw

A user installed QuorX from the Microsoft Store and asked for a detailed news report with charts, figures and diagrams. The agent planned it, wrote it, and opened it. On their screen the report looked finished: a hero, incident cards, an exploitation chart, an exposure map. They told the agent so, mid-reply: "I can see the site, it looks neat, all good."

The agent kept going. It reloaded the page with ?v=7, then ?v=9, ?v=11, ?v=13. It wrote a temporary debug probe into the app's code. It read the stylesheet line by line looking for something hiding the content. The user shared the chat and asked a simple question: it feels like it's stuck in a loop, why can't it see the page?

What the chat's log showed

Every QuorX reply keeps a log of each step: every tool call, its result, and every screenshot the agent saw. Reading it, the pattern was plain.

  1. Opens the report

    The screenshot of the top of the page is fine: the hero headline, the menu, the buttons.

    ok
  2. Scrolls 1000 px

    The screenshot is the page's background colour, nothing else. Not even the sticky menu bar.

    blank
  3. Asks: is the chart drawn?

    The judges see an empty screen and answer no. The agent starts looking for a bug in its chart code.

    blank
  4. Reloads with ?v=7, ?v=9, ?v=11…

    Every screenshot after a scroll or a click comes back the same: background only.

    loop
  5. Writes a debug probe into the page

    The probe proves the sections exist and have the right sizes. The screenshots still show nothing.

    loop
  6. The user says it looks good

    The agent reads it, but its own checks keep failing, so it keeps polishing.

    loop

Eleven of the agent's screenshots after a scroll or a click had exactly the same average brightness, 9 out of 255: the report's background colour, #07090d, and nothing on it.

What the agent saw after scrolling: the page background and nothing else

Ruling things out

A page that is blank only for the agent can have several causes, so each one was checked against the same report.

SuspectWhat was checkedVerdict
The page hides content until it scrolls into viewMany pages fade sections in, but even the sticky menu bar, which never fades, was missingRuled out
The headless browser draws it wrongQuorX's headless browser opened a copy of the report, scrolled 1600 px, and screenshotted the chart and cards perfectlyRuled out
The desktop tab doesn't paint while hiddenThe agent's tab sits behind the Browser pane, but a hidden view in a plain Electron test still screenshotted fineRuled out
The screenshot is taken from the wrong placeThe desktop app captured the page from the top-left of the document, not where it was scrolled toThe cause

The cause

In the desktop and Store app, the agent's browser tab is a real Chromium page shown inside the Browser pane. When the pane is narrower than the page, QuorX shows the page scaled down to fit, and takes screenshots at the page's own size by passing Chromium a clip: a rectangle to capture.

That rectangle always started at 0, 0. A clip is measured in page coordinates, from the top of the document, not from the top of the window. Once the page had scrolled to 1600 px, the area at 0, 0 was off screen, and Chromium returned what it had there: the background colour.

› Screenshot the page after scrolling 1600 px down
  1. 1
    Ask where the page is scrolled toPage.getLayoutMetrics: 0, 1600
  2. 2
    Clip starts therethe part the window shows
  3. 3
    Chromium returns the pagethe chart, the cards, the menu
The agent sees what the user sees

Its checks pass on a page that works, and fail only on one that doesn't.

The test that settled it ran the user's own report in Electron, scaled and scrolled exactly as the desktop app does. A clip at 0, 0 gave the same blank image the agent got, at the same brightness. A clip at the scrolled position gave the page:

The same scroll position, captured where the page is scrolled to

The headless browser was never affected: it takes screenshots without a clip. That is why QuorX's own tests, which use the headless browser, never caught it.

What changed in 0.2.11

Blank screenshots after a scroll, in that chat
110
  • The desktop app asks Chromium where the page is scrolled to (Page.getLayoutMetrics) and starts the clip there.
  • Nothing changes for the headless browser, or for a page shown at full size.