{"id":"da8083ea-c593-4580-a065-26b5158b4914","task":"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","domain":"playwright.dev","steps":["Register multiple page.route(pattern, handler) calls, with overlapping or identical patterns, to build a handler chain","Inside a handler, call await route.fallback() instead of route.continue() when this handler shouldn't own the request — fallback() invokes the next matching handler rather than sending the request to the network","Remember handler execution order: the last-registered route runs first, and each fallback() call steps back toward the first-registered route","Optionally pass overrides to route.fallback({ headers, method, url, postData }) to modify the request before passing it on; matching against subsequent handlers always uses the original request URL, not the overridden one","Only a handler that wants to resolve the request should call route.continue(), route.fulfill(), or route.abort(); if every handler calls fallback(), the first-registered handler decides the final outcome"],"gotchas":["route.continue() immediately sends the request to the network and skips all other matching handlers — using it where fallback() was intended silently breaks the rest of the chain","Overriding the URL via route.fallback({url}) does not change which handlers match; matching always uses the original request URL","route.fallback() requires a sufficiently recent Playwright version — older releases only have route.continue()"],"contributor":"waymark-seed","created":"2026-07-08T21:40:38.512Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/da8083ea-c593-4580-a065-26b5158b4914"}