---
title: Browser check runtime: Playwright, Chromium and Node versions
description: The exact Playwright, Chromium and Node versions browser checks run on, the settings every run starts with, what a script can import, and how new Playwright versions arrive without breaking your checks.
canonical: https://watchfor.io/docs/monitors/browser-checks/runtime
---

# Browser check runtime: Playwright, Chromium and Node versions

The exact Playwright, Chromium and Node versions browser checks run on, the settings every run starts with, what a script can import, and how new Playwright versions arrive without breaking your checks.

Every browser check runs on a named **runtime**: a pinned Playwright release with
the Chromium and Node it ships with, plus a few preinstalled helpers. Pinned
means a check that passes today keeps running on exactly the same software
until you choose to move it.

## Runtime 2026.09 (current)

| Component | Version |
|---|---|
| `@playwright/test` | **1.63.0** |
| Chromium | 153.0.8010.12 (the build Playwright 1.63.0 installs) |
| Node.js | 24.20.0 |
| `otpauth` | 9.5.2 — one-time codes for 2FA logins |
| `@faker-js/faker` | 10.6.0 — test data |

Every run shows the versions it used at the top of its details (for example
“Playwright 1.63.0 · Chromium 153”), and the API returns them with each run.

## What every run starts with

We generate the Playwright config for each run; a script can't supply its own
`playwright.config`, but it can change most of these per file with `test.use()`:

| Setting | Value | Change it with |
|---|---|---|
| Browser | Chromium, headless | — (Chromium only) |
| Viewport | 1280 × 720 | `test.use({ viewport: { width, height } })` or a [device](/docs/monitors/browser-checks/recipes#mobile) |
| Locale / timezone | `en-US` / `UTC` | `test.use({ locale: 'de-DE', timezoneId: 'Europe/Berlin' })` |
| Action timeout | 15 s | `test.use({ actionTimeout: … })` or per call |
| Navigation timeout | 30 s | `test.use({ navigationTimeout: … })` or per call |
| `expect` timeout | 5 s | per assertion: `expect(x).toBeVisible({ timeout: 10_000 })` |
| Test timeout | the check's **Timeout** setting | the check's Settings (plans set the maximum) |
| Retries | once, in a fresh browser — the check's **Retry** setting | the check's Settings |
| Downloads | off | `test.use({ acceptDownloads: true })` |
| HTTPS errors | not ignored | `test.use({ ignoreHTTPSErrors: true })` |
| Service workers | allowed | `test.use({ serviceWorkers: 'block' })` |
| Trace | kept on failure (and on full runs) | the check's **Keep a Playwright trace** setting |
| Screenshots, video | taken by us per step / none | — |

Workers are fixed at one: the tests in a file run one after another.

## What a script can import

- `@playwright/test` — `test`, `expect`, `devices`, `request` and the rest.
- `otpauth` and `@faker-js/faker`.
- Node built-ins, such as `node:crypto`, `node:path` and `node:fs/promises`
  (files a run writes disappear with it).
  Not available: `child_process`, `cluster`, `worker_threads`, `net`, `dgram`,
  `http2`, `inspector` and `vm`.

A check is one file, up to 64 KB and 10 tests, in TypeScript or JavaScript.
There is no `npm install`, and imports from URLs or relative paths are refused
— paste a helper into the script instead. The editor flags any import the
runtime doesn't have before you run it.

## How upgrades work

- **Nothing changes under a running check.** A check stays on its runtime; we
  never move it to a new Playwright version on your behalf.
- **New runtimes are opt-in.** When a new runtime arrives, you choose when to
  move each check, after a test run on the new runtime shows it passes there.
  New runtimes are announced in the [changelog](/changelog) with what changed.
- An old runtime is retired only after an announcement, with time to move.

To reproduce a run on your machine with the same versions, see
[Run locally](/docs/monitors/browser-checks/run-locally).

---

Canonical page: https://watchfor.io/docs/monitors/browser-checks/runtime · All docs: https://watchfor.io/docs · Site guide: https://watchfor.io/llms.txt
