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

Call and await clearPermissionOverrides() on the BrowserContext where you set the permissions. It clears every permission override in that context, not just the override for one origin.

Clear permission overrides in the current context

The method belongs to Puppeteer’s BrowserContext, not to a Page. Use the same context that received the override:

const context = browser.defaultBrowserContext();

await context.overridePermissions('https://example.com', ['clipboard-read']);

// Run the work that needs the permission override.

await context.clearPermissionOverrides();

Puppeteer’s API reference defines clearPermissionOverrides() as clearing all permission overrides for that browser context. Its return type is Promise<void>, so await it before continuing with work that depends on the permissions being reset.

Understand the reset scope

The reset applies to the context on which you call it and clears that context’s overrides across origins. It is not a one-origin undo operation. At the protocol level, Puppeteer sends Browser.resetPermissions with the context ID; omitting the ID selects the default browser context and resets permission management for all origins. See the Chrome DevTools Protocol Browser domain.

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

For the default context, call the method on browser.defaultBrowserContext(). For a non-default context, call it on that same context instance. The method clears overrides; it does not close or recreate the context.

Use a separate context when you need isolation

A separate browser context can isolate an automation task. Puppeteer’s browser-management guide describes contexts as isolating cookies and local storage, and notes that closing a context closes its pages. Creating one is an isolation choice, not a requirement for clearing permissions.

Rank #2
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option
const context = await browser.createBrowserContext();
try {
  const page = await context.newPage();
  await context.overridePermissions('https://example.com', ['geolocation']);

  // Run isolated work.

  await context.clearPermissionOverrides();
} finally {
  await context.close();
}

This pattern clears permissions before closing the isolated context. If you are finished with the entire context, closing it is a separate lifecycle action.

Common mistakes and fixes

  • Calling the method on a page: It is a BrowserContext method. Keep a reference to the context and call context.clearPermissionOverrides().
  • Not awaiting the reset: Since the method returns a promise, use await before starting steps that expect normal permission behavior.
  • Expecting to clear only one origin: The method clears all overrides in the selected context. If you need different permission behavior afterward, set the required overrides again for that context.
  • Clearing the wrong context: If the override was set on a non-default context, clear it on that same context; clearing the default context does not target the other context.
  • Expecting the call to close or recreate the context: Permission reset and context lifecycle are separate. Use context.close() when you want to close the context and its pages.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your goal is to capture a website rather than automate its browser permissions, ScreenshotNeo returns a screenshot or PDF with one GET request. For example, save a WebP capture with cURL:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

See the ScreenshotNeo API documentation for request options. Cookie banners are accepted and removed before capture, along with supported newsletter popups and chat widgets. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing; the response identifies the page verdict and billing status in headers. Its MCP server provides screenshot tools for AI agents, and the free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots.

Sign up for ScreenshotNeo’s free plan.

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.