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

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

If Chrome DevTools Protocol (CDP) reports that Network.setRequestInterception is deprecated, migrate interception to the Fetch domain: call Fetch.enable, listen for Fetch.requestPaused, and answer every pause with exactly one of Fetch.continueRequest, Fetch.fulfillRequest, or Fetch.failRequest. Keep the listener on the same CDP session, attach it before navigation, and use the event’s requestId. Chromium’s protocol definition explicitly says, “Deprecated, please use Fetch.enable instead.” (CDP Network protocol)

Why the error happens

Network.setRequestInterception is an experimental, deprecated CDP command. It belongs to the older Network interception flow. The replacement is not just a differently named enable command: the event, identifier, and commands used to resolve a paused request also change.

The old companion APIs, Network.requestIntercepted and Network.continueInterceptedRequest, are deprecated too. Migrate the entire event-and-command family rather than mixing legacy Network interception with Fetch interception. Chromium’s protocol definition directs users to Fetch.continueRequest, Fetch.fulfillRequest, and Fetch.failRequest instead. (CDP Network protocol)

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

The supported Fetch interception flow

  1. Enable interception with Fetch.enable and one or more request patterns.
  2. Listen for Fetch.requestPaused on the same CDP session.
  3. For each paused request, choose one completion action: continue it, fulfill it with a response, or fail it.

A paused request stays paused until your client responds. A missing handler, a branch that returns without responding, or an exception before the completion command can make a page look as though it is loading forever. The protocol documents the Fetch events and commands, including the response-stage and authentication flows. (CDP Fetch protocol)

#1 Best Overall
Sale
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents

Migrate a Puppeteer CDP handler

This raw CDP example replaces a legacy interception setup. It blocks requests whose URL contains /blocked-endpoint and continues all other requests. Register the event handler before navigation or any other action that can trigger requests.

const cdp = await page.target().createCDPSession();

cdp.on('Fetch.requestPaused', async event => {
  try {
    const { requestId, request } = event;

    if (request.url.includes('/blocked-endpoint')) {
      await cdp.send('Fetch.failRequest', {
        requestId,
        errorReason: 'BlockedByClient'
      });
      return;
    }

    await cdp.send('Fetch.continueRequest', { requestId });
  } catch (error) {
    // Log the error and ensure your production code has a recovery policy.
    console.error('Fetch interception handler failed', error);
  }
});

await cdp.send('Fetch.enable', {
  patterns: [{
    urlPattern: '*',
    requestStage: 'Request'
  }]
});

// Navigate only after the listener and interception are set up.
await page.goto('https://example.com');

The example uses Puppeteer’s page.target().createCDPSession() interface. If your library exposes CDP sessions differently, use its corresponding session-creation method; the protocol commands and event names remain the relevant CDP pieces. Use requestId from Fetch.requestPaused with Fetch commands. Do not pass the legacy Network interceptionId to a Fetch command.

Why the setup order matters

  • Create the CDP session and attach the listener to it.
  • Enable Fetch interception on that same session.
  • Only then navigate or perform the action that produces the requests.

Attaching the listener after navigation risks missing early requests. Enabling Fetch on one session and listening on another means the handler may never see the pauses it must resolve.

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

Choose a request pattern and interception stage

Fetch.enable accepts an array of request patterns. A pattern can contain a urlPattern, an optional resourceType, and an optional requestStage. Verify that the pattern matches the actual request URL and type. The Fetch protocol describes the pattern fields and the effects of enabling interception. (CDP Fetch protocol)

Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
Need Set or use What to watch
Inspect or modify a request before it is sent requestStage: 'Request' Resolve each Fetch.requestPaused event with a Fetch command.
Inspect or replace a response requestStage: 'Response' Response-body operations are limited to requests paused at the response stage.
Handle a request matching selected traffic Set a specific urlPattern and, if useful, resourceType Check the actual URL and resource type against the pattern.
Handle all matching traffic Use an appropriately broad pattern A broad pattern can pause many requests; ensure every event has a completion path.

If no pattern is supplied, the Fetch documentation describes all requests as affected. Avoid a broad interception rule unless the handler is ready to process every paused request.

Resolve each pause exactly once

For every Fetch.requestPaused event, decide what should happen and send the corresponding Fetch command using that event’s requestId.

  • Fetch.continueRequest lets the request proceed.
  • Fetch.fulfillRequest supplies a response instead of letting the original request complete normally.
  • Fetch.failRequest stops the request with an error reason.

Choose one action for a paused request; do not leave a branch without a response or attempt multiple completion commands for the same pause. Wrap asynchronous handler logic in error handling and log failures. A catch block alone does not resolve a request if an exception occurred before a completion command, so production code needs a deliberate recovery policy for handler failures.

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

Handle redirects, authentication, and response bodies

Redirects

Treat each paused hop as an event to handle. Use the identifier supplied by that Fetch event when issuing the command for that pause; do not assume a legacy Network interception identifier applies.

Rank #3
Sale
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.

Authentication challenges

When authentication handling is enabled and Fetch emits Fetch.authRequired, respond using Fetch.continueWithAuth. This is a separate path from the ordinary request-paused completion commands.

Response inspection or replacement

Configure the request pattern for requestStage: 'Response' when the goal is to inspect or replace a response. Fetch response-body methods are limited to requests paused at that response stage; a request-stage pause is not interchangeable with a response-stage pause.

Common errors and how to fix them

“Unknown command” or “method not found”

The browser target may expose an older or mismatched protocol, or a wrapper may rename or omit CDP methods. Check the browser’s reported protocol version and the client library’s generated CDP API. Since the current Chromium protocol marks Network.setRequestInterception deprecated, update the wrapper and use Fetch methods where available.

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

“Invalid parameters” or no pause event arrives

Confirm that Fetch.enable receives an array of request-pattern objects and that each property is valid for your intended match. Check the spelling and value of urlPattern, optional resourceType, and optional requestStage. Then compare the pattern with the request that should match; a pattern that does not match cannot produce the expected pause.

Rank #4
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient

The page hangs after interception is enabled

Look for a Fetch.requestPaused event whose handler did not complete. Add logging at handler entry and before each Fetch command. Check every conditional branch, early return, and thrown exception. Continue ordinary traffic, fail requests you intentionally block, or fulfill requests you intend to replace.

The handler never sees requests, or another handler behaves inconsistently

Make sure the listener is attached to the same CDP session that called Fetch.enable and is registered before navigation. Also look for a second interception owner on the same target. A CDP issue documents a setup in which one process consumed Fetch.requestPaused while another expected Network.requestIntercepted, and the latter stopped receiving events. Coordinate ownership so one handler is responsible for interception on a target, or explicitly design how the clients share it. (Chrome DevTools Protocol issue 165)

Fetch commands fail even though a request was intercepted

Use the Fetch requestId from the paused event, not the old Network interceptionId. Confirm that the event and command belong to the same session and that the request has not already been resolved by another handler.

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

Migration checklist

  • Replace Network.setRequestInterception with Fetch.enable.
  • Replace Network.requestIntercepted listeners with Fetch.requestPaused.
  • Replace Network.continueInterceptedRequest with the appropriate Fetch command: continue, fulfill, or fail.
  • Use the Fetch event’s requestId, not the legacy Network interception ID.
  • Attach the listener before navigation, on the session that enabled interception.
  • Ensure every pause reaches exactly one completion action, including error and conditional paths.
  • Coordinate or remove competing interception consumers on the same target.

Or skip the browser setup

If your goal is to capture a website rather than build and maintain a CDP interception handler, ScreenshotNeo provides a screenshot API and MCP server. Its capture flow accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before taking the shot; each cleanup step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status in headers. AI agents can use its MCP server through tools including take_screenshot, get_page_info, and capture_pdf.

One GET request returns a screenshot or PDF. See the ScreenshotNeo API documentation for the available parameters and formats.

Best Value
Sale
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account to get started.

Frequently Asked Questions

Can I keep using `Network.setRequestInterception` if it still works?

Chromium marks the command experimental and deprecated, so new interception code should use the Fetch domain. Existing behavior may depend on the browser and client protocol exposed to your session.

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

Is `Fetch.requestPaused` the same event as `Network.requestIntercepted`?

They belong to different protocol flows. Migrate the listener and its completion commands together rather than mixing the legacy Network event family with Fetch.

Do I need CDP interception to take a website screenshot?

No. CDP interception is useful when your automation must inspect, modify, fulfill, or block requests. For straightforward website captures, ScreenshotNeo is an alternative that returns a screenshot or PDF from a GET request.

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.