Skip to content

Instantly share code, notes, and snippets.

@jihchi
Last active December 16, 2025 17:05
Show Gist options
  • Select an option

  • Save jihchi/2f893118d809824ea090fdd329198e11 to your computer and use it in GitHub Desktop.

Select an option

Save jihchi/2f893118d809824ea090fdd329198e11 to your computer and use it in GitHub Desktop.
Minimum reproducible steps for issue https://github.com/denoland/deno/issues/31595

Getting Started

The following command works fine in Deno 2.5.6, but it fails in Deno 2.6.0 and 2.6.1:

Warning

In Deno 2.6.0 and 2.6.1, the process may hang for 200+ seconds and then throws a TimeoutError exception.

deno run \
  --allow-env \
  --allow-sys  \
  --allow-read \
  --allow-write \
  --allow-run \
  --allow-net \
  https://gist.github.com/jihchi/2f893118d809824ea090fdd329198e11/raw/puppeteer.ts

For example, you can use mise to quickly switch and run different Deno versions:

$ mise exec deno@2.5.6 -- deno run --allow-env --allow-sys --allow-read --allow-write --allow-run --allow-net https://gist.github.com/jihchi/2f893118d809824ea090fdd329198e11/raw/puppeteer.ts
launch a puppeteer
create a page
go to deno.com
get the title
Deno 2.6: dx is the new npx | Deno
goodbye

Warning

Your terminal may hang, and Ctrl+C may not be responsive. Be prepared to manually terminate the process if you do not want to wait for the timeout.

$ mise exec deno@2.6.0 -- deno run --allow-env --allow-sys --allow-read --allow-write --allow-run --allow-net https://gist.github.com/jihchi/2f893118d809824ea090fdd329198e11/raw/puppeteer.ts
A new release of Deno is available: 2.6.0 → 2.6.1 Run `deno upgrade` to install it.
launch a puppeteer
create a page
error: Uncaught (in promise) TimeoutError: Timed out after waiting 30000ms
          throw new TimeoutError(`Timed out after waiting ${ms}ms`, {cause});
                ^
    at file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/src/common/util.ts:289:17
    at file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/lib/esm/third_party/rxjs/rxjs.js:1944:31
    at OperatorSubscriber2._this._next (file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/lib/esm/third_party/rxjs/rxjs.js:1001:9)
    at OperatorSubscriber2.Subscriber2.next (file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/lib/esm/third_party/rxjs/rxjs.js:704:12)
    at AsyncAction2.<anonymous> (file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/lib/esm/third_party/rxjs/rxjs.js:2288:20)
    at AsyncAction2._execute (file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/lib/esm/third_party/rxjs/rxjs.js:1368:12)
    at AsyncAction2.execute (file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/lib/esm/third_party/rxjs/rxjs.js:1357:22)
    at AsyncScheduler2.flush (file:///home/jihchi/.cache/deno/npm/registry.npmjs.org/puppeteer-core/24.22.3/lib/esm/third_party/rxjs/rxjs.js:1435:26)
    at cb (ext:deno_node/internal/timers.mjs:85:49)
    at callback (ext:deno_web/02_timers.js:71:7)
import puppeteer from "npm:puppeteer@24.33.0";
console.log("launch a puppeteer");
const browser = await puppeteer.launch();
console.log("create a page");
const page = await browser.newPage();
console.log("go to deno.com");
await page.goto("https://deno.com/blog/v2.6");
console.log("get the title");
console.log(await page.title());
console.log("goodbye");
await page.close();
await browser.close();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment