[BUG] Requested dimensions leave browser-visible screen at 800x600

Author: m2moizCreated Jul 31, 2026Updated Aug 24, 2026

What I was trying to do

I was creating an explicit desktop agent session with fixed dimensions and checking that API metadata, the browser window, device metrics, and browser-visible fingerprint fields all describe the same display.

Versions tested

  • Steel API 0.5.2 runtime; current main inspected for the affected metrics path
  • Chromium 150.0.7871.124
  • Node 22.13.0
  • Docker on Debian 12, host macOS arm64

Describe the bug

Explicit session dimensions are reflected in API metadata and the outer browser window, but the page still sees an 800x600 screen. This creates a browser-visible contradiction between outerWidth/outerHeight and screen.width/screen.height.

To reproduce

  1. Create a session with:
json
{
  "dimensions": { "width": 1234, "height": 777 }
}
  1. Evaluate:
javascript
({
  inner: [innerWidth, innerHeight],
  outer: [outerWidth, outerHeight],
  screen: [screen.width, screen.height, screen.availWidth, screen.availHeight],
  dpr: devicePixelRatio
})
  1. Repeat with a second session using 1111x700.

Actual behavior

The 1234x777 session returned an outer window of 1234x777 and an inner viewport of 1234x690, but:

json
{ "screen": [800, 600, 800, 600] }

The 1111x700 session had the same 800x600 screen result.

Expected behavior

The browser-visible screen metrics, device metrics, outer window, and generated fingerprint metadata should describe one coherent display. If the requested dimensions cannot be represented coherently, session creation should reject them instead of returning contradictory values.

Screenshots

Not required; the evaluated values above are the failure.

Desktop

  • OS: Docker on Debian 12, host macOS arm64
  • Browser: Chromium 150.0.7871.124
  • Steel API: 0.5.2; current main retains the affected metrics path
  • Node: 22.13.0

Smartphone

N/A

Additional context

Applying the fingerprint screen metrics and effective device configuration before exposing the page fixed the contradiction locally. A regression check asserts the same values reach the browser session when an explicit user agent or dimensions object is supplied.