{"schemaVersion":"1.0","canonicalUrl":"https://automationtester.in/failures/playwright-timeout-exceeded","slug":"playwright-timeout-exceeded","title":"Playwright timeout exceeded","signature":"TimeoutError: locator.click: Timeout 30000ms exceeded.","frameworks":["Playwright"],"classification":"timing-race","summary":"Playwright stopped waiting because an action or assertion did not reach its expected state before the configured timeout.","causes":[{"title":"The element never reached the required state","explanation":"The locator resolved, but the target stayed hidden, disabled, moving, or covered.","diagnostic":"Open the trace and inspect the actionability log immediately before the timeout.","fix":"Wait for the user-visible state that enables the action, then act on a role or test-id locator."},{"title":"The locator no longer identifies the intended element","explanation":"A text, role, label, or DOM structure changed and the locator now resolves to zero or multiple nodes.","diagnostic":"Run the locator in the trace viewer or Playwright inspector and check its match count.","fix":"Replace structural selectors with a unique role, label, or test-id contract."},{"title":"The application request did not complete","explanation":"A failed or stalled API request prevented the page from reaching the expected state.","diagnostic":"Inspect failed requests and console errors in the trace instead of increasing the timeout first.","fix":"Fix or mock the failing dependency and wait on the resulting UI state rather than a fixed delay."}],"prevention":["Capture a trace on the first retry.","Assert the state that enables the next action.","Keep locator contracts stable and unique."],"related":["playwright-strict-mode-violation","element-not-visible-or-actionable","econnrefused-in-ci"],"references":[{"label":"Playwright timeouts","url":"https://playwright.dev/docs/test-timeouts"},{"label":"Playwright actionability","url":"https://playwright.dev/docs/actionability"}]}