cloudflare / workers-sdk

โ›…๏ธ Home to Wrangler, the CLI for Cloudflare Workersยฎ
https://developers.cloudflare.com/workers/
Apache License 2.0
2.75k stars 736 forks source link

๐Ÿ› BUG: sveltekit quickstart gives a 500 server error - 'No such module "node:async_hooks"' #7395

Open filipe-freire opened 4 days ago

filipe-freire commented 4 days ago

Which Cloudflare product(s) does this pertain to?

Pages

What version(s) of the tool(s) are you using?

3.91.0 [Wrangler], 9.13.2 [pnpm]

What version of Node are you using?

22.11.0

What operating system and version are you using?

Linux (Pop!_OS jammy 22.04 x86_64) | Kernel: Linux 6.9.3-76060903-generic

Describe the Bug

Observed behavior

Upon running the step to jumpstart a new sveltekit project through the CLI shown in the Cloudflare website, all appears to run smoothly (with no errors on the terminal) up until the "DNS propagation/waiting for the deployment to become available" step.

Right after "DNS propagation complete." the terminal outputs timed out while waiting for https://<project-name>.pages.dev - try accessing it in a few minutes..

Upon waiting +30min, the page is still showing a 500 Internal Server Error. Inspecting the cloudflare pages logs show an error: ` No such module "node:async_hooks"

My best guess is that some 3rd party library integration is requiring that module causing it to show, since choosing a simple sveltekit app with no integrations does not cause the error and the deployment goes through without issue. I'll update the issue with my findings.

Expected behavior

The CFPages project should deploy successfully without any errors.

Steps to reproduce

Chosen CLI options:

Which template would you like?
โ”‚  SvelteKit minimal
โ”‚
โ—‡  Add type checking with Typescript?
โ”‚  Yes, using Typescript syntax
โ”‚
โ—†  Project created
โ”‚
โ—‡  What would you like to add to your project? (use arrow keys / space bar)
โ”‚  prettier, eslint, vitest, tailwindcss, drizzle, paraglide, playwright
โ”‚
โ—‡  tailwindcss: Which plugins would you like to add?
โ”‚  typography, forms
โ”‚
โ—‡  Which package manager do you want to install dependencies with?
โ”‚  pnpm

Please provide a link to a minimal reproduction

No response

Please provide any relevant error logs

The redacted error log shown in the CFPages dashboard for the project:

{
  "truncated": false,
  "executionModel": "stateless",
  "outcome": "ok",
  "scriptVersion": {
    "id": "c5af4521-516a-41e3-899e-bd075efeed9a"
  },
  "scriptName": "pages-worker--4510812-production",
  "diagnosticsChannelEvents": [],
  "exceptions": [],
  "logs": [
    {
      "message": [
        "Error: No such module \"node:async_hooks\"."
      ],
      "level": "error",
      "timestamp": 1732976236667
    }
  ],
  "eventTimestamp": 1732976236660,
  "event": {
    "request": {
      "url": "https://<project-name>.pages.dev/",
      "method": "GET",
      "headers": {
       ...
      },
      "cf": {
        "httpProtocol": "HTTP/3",
        "tlsCipher": "AEAD-AES128-GCM-SHA256",
        "continent": "EU",
        "asn": 2840,
        "clientAcceptEncoding": "gzip, deflate, br, zstd",
        "country": "SE",
        "isEUCountry": "1",
        "verifiedBotCategory": "",
        "tlsClientAuth": {
          ...
        },
        "tlsExportedAuthenticator": {
          ...
        },
        "botManagement": {
          "corporateProxy": false,
          "verifiedBot": false,
          "jsDetection": {
            "passed": false
          },
          "staticResource": false,
          "detectionIds": {},
          "score": 99
        }
      }
    },
    "response": {
      "status": 500
    }
  },
  "id": 1
}
filipe-freire commented 4 days ago

After some triaging, the issue seems to be due to the package paraglide, as installing the following combination of packages prettier, eslint, vitest, tailwindcss, drizzle seems to not trigger the error, making the deployment go through successfully.

I also found this page, which shows that node:async_hooks is not yet supported by WorderD & Wrangler, although I'm not 100% sure how up-to-date the info is here.

If anyone is more knowledgeable about this issue/domain, please feel free to pitch in :)