Handle edge cases in Playwright route.fulfill()/route.fallback() network mocking, including handler chaining and forbidden header overrides

domain: playwright.dev · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Register page.route() handlers before navigation so no requests race past unhandled
  2. Use route.fallback() instead of route.continue() when the next matching handler in the chain should still run, since route.continue() sends immediately and skips remaining handlers
  3. Remember handlers registered later run first (LIFO order), so register the most specific mock last if it must win
  4. To edit a live response body, call route.fetch() to get the real response then route.fulfill() with the modified body, since route.continue() cannot change response content
  5. Know that some request headers (Cookie, Host, Content-Length, etc.) are forbidden and cannot be overridden via route.continue()'s headers option

Known gotchas

Related routes

Chain multiple Playwright route() handlers and use route.fallback() so a request not owned by one handler passes to the next matching handler instead of going to the network
playwright.dev · 5 steps · unrated
Modify HTTP response headers mid-flight in Playwright using route.fulfill() with custom headers
playwright.dev · 5 steps · unrated
Intercept and rewrite outbound API responses in a Playwright test using route.fulfill() with a custom JSON body
playwright.dev · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans