Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk6 min

How to Fix Applitools Eyes Timeout Errors in Playwright Tests

Applitools Eyes timeout errors can originate in Playwright or visual matching. Identify the failing operation, wait for application readiness, and adjust only the timeout that owns it.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

First identify which timeout expired: Playwright’s test, assertion, action, or navigation timeout is different from Applitools Eyes’ visual MatchTimeout. Read the exact error and the operation at the top of the failing stack trace before changing a limit. If the page is simply not ready for a visual checkpoint, wait for an application condition—such as a loading spinner disappearing—before calling eyes.check().

Identify which timeout failed

A timeout near eyes.check() does not by itself prove that Eyes’ MatchTimeout expired. The failure may belong to Playwright or to an application operation immediately before the checkpoint. Use the message, call log, and stack trace to locate the operation that was waiting.

Failure surface What it usually means First place to inspect
Timeout of 30000ms exceeded attributed to a Playwright test The test body, fixture setup, or beforeEach exceeded the test budget. Playwright’s test timeout configuration or a scoped test timeout.
An assertion call log waiting for a locator or text The auto-retrying assertion did not pass within its own timeout. expect.timeout or the timeout option on that assertion.
A click, fill, or other locator action times out The action could not complete within its action budget, often because the target was not in the required state. The action’s timeout and the locator’s state.
page.goto() or navigation times out Navigation did not complete within its navigation budget. The navigation timeout and page/network behavior.
An error during eyes.check() or visual comparison Checkpoint work, an application still loading, or Eyes visual matching may be involved. Wait for UI readiness, then inspect the Eyes error and installed SDK version.
A failure in fixture setup, teardown, or a hook The relevant fixture or hook scope may have its own timeout behavior. The test report, fixture setup/teardown, and hook timing.

Playwright’s timeout guide documents a 30,000 ms default test timeout and a separate 5,000 ms default for auto-retrying assertions. The test timeout includes the test function, fixture setup, and beforeEach; the assertion timeout is independent. Action and navigation timeouts are separately configurable. These are documented defaults, not proof that a particular operation is the source of your failure.

Wait for the page state the checkpoint needs

If the screenshot is captured while the application is loading, increasing a global timeout can hide the symptom without making the checkpoint reliable. Wait for a condition that means the UI is ready for the visual comparison. For example, if the page displays a spinner until its content is available:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
await page.waitForSelector('.spinner', { state: 'detached' });
await eyes.check('Dashboard');

Use the condition that matches your application: a spinner becoming hidden or detached, a key element appearing, or another meaningful readiness signal. Avoid waiting for an arbitrary amount of time when the application can tell the test that it is ready.

Applitools documents a Playwright waitBeforeCapture callback for capture synchronization, including a locator wait for a spinner to become hidden. Check the Applitools guidance on animations and loading artifacts for the API pattern that fits your integration. Its framework-native approach is preferable to guessing how long the page will take.

Change the timeout that owns the failure

Playwright test timeout

If the test body, setup, fixture work, or beforeEach genuinely needs more time, adjust the test timeout at the appropriate scope rather than changing unrelated limits. A per-test override can keep the exception local:

import { test } from '@playwright/test';

test('visual review of a slow report', async ({ page }) => {
  // Test steps
}, { timeout: 60_000 });

For a project-wide change, Playwright’s documented configuration uses the timeout setting in the test configuration. Scope the increase narrowly where possible: one unusually slow test may not justify giving every test a larger budget.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Assertion timeout

If an auto-retrying assertion is the operation that expires, adjust its timeout—not the Eyes MatchTimeout. Playwright supports a project-level expect.timeout and a timeout option for an individual assertion. Keep the assertion focused on the state being verified.

Action and navigation timeouts

If the stack trace points to a locator action or page.goto(), inspect that operation’s timeout and the reason it cannot finish. A click timeout may indicate that the target is not actionable; a navigation timeout may indicate delayed server or network behavior. Raising the test timeout alone does not necessarily change the operation’s own limit.

Eyes MatchTimeout

MatchTimeout applies to Eyes’ wait for an image to stabilize toward a baseline match. Applitools Support’s Match Timeout article documents a two-second default and describes retries and a per-step override. That article dates to 2021, and the units depend on the SDK, so verify the setting and syntax for the Eyes package installed in your project before applying an example. MatchTimeout is not a replacement for Playwright’s test timeout.

Check integration and version differences

Applitools’ current integration documentation describes fixture-based Playwright integration, including importing an enhanced test from @applitools/eyes-playwright/fixture and using the eyes fixture. Its Playwright integration guide and updated SDK article published March 11, 2026 discuss this approach and a gradual migration path. Projects using a previous or standard SDK may have different setup and APIs; confirm the package version and integration style before copying fixture or MatchTimeout code.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot the cause before widening limits

  1. Save the full error and stack trace. Note the exact timeout message and the last operation in the call log, rather than inferring the owner from the test name.
  2. Check readiness at the failing checkpoint. Add a condition-based wait for the element or state the screenshot needs, then run the test again.
  3. Inspect trace and logs. Determine whether time was spent in test setup, an assertion, a locator action, navigation, or Eyes comparison.
  4. Consider environmental delays. Applitools lists unstable networks, delayed application servers, third-party components, and CPU or memory bottlenecks as possible contributors to synchronization difficulty. Look for repeatable evidence before raising a timeout globally.
  5. Use fixed sleeps only when necessary. Applitools describes a fixed sleep as its least-recommended synchronization choice: it wastes time on fast runs and can still be too short on slow ones. If no deterministic readiness condition is available, make any delay bounded and intentional.
  6. Verify SDK-specific settings. Check the API and units against the installed Eyes SDK and the Playwright version in the project; do not assume an older support example applies unchanged.

Or skip the browser setup

If your goal is a screenshot rather than a Playwright test or baseline comparison, ScreenshotNeo provides a one-request website screenshot API. It accepts a URL and returns an image or PDF; for a screenshot, a cURL request looks like this:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo documentation for authentication and request options. ScreenshotNeo accepts cookie or consent banners before capture and removes 60+ known consent platforms, newsletter popups, and chat widgets; these steps can each be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers identify the page verdict and whether the request was billed. Its MCP server provides screenshot tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000 screenshots.

Sign up free for 1,000 screenshots a month—no card required.

Frequently Asked Questions

Is Eyes MatchTimeout the same as a Playwright timeout?

No. MatchTimeout is for Eyes’ visual stabilization and comparison; Playwright has separate test, assertion, action, and navigation timeouts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why does `eyes.check()` time out when the page looks loaded?

The error alone does not identify the owner. Inspect the full message, stack trace, and call log to distinguish checkpoint work, application readiness, Playwright limits, and Eyes matching.

Should I add a fixed sleep before every visual check?

No. Prefer waiting for a meaningful application condition; fixed sleeps can waste time or remain too short when page speed changes.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Shenzhen desk3 min
    HONOR Expands Beyond Smartphones With Humanoid Robot RevealHONOR said it unveiled its first humanoid robot at MWC 2026 and named shopping assistance, workplace inspections, and supportive companionship as intended uses. Later Robotics D1 claims and a reported…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.