cloudflare / workers-sdk

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

๐Ÿ› BUG: "Failed to register worker in local service registry" on `wrangler pages dev` if `wrangler.toml` exists #6173

Closed scruffymongrel closed 3 months ago

scruffymongrel commented 3 months ago

Which Cloudflare product(s) does this pertain to?

Pages

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

wrangler 3.62.0

What version of Node are you using?

22.1.0

What operating system and version are you using?

Mac Sonoma 14.5

Describe the Bug

Observed behavior

wrangler dev pages . runs but content not accessible via browser when wrangler.toml exists.

Expected behavior

Expect to be able to view content, even when wrangler.toml exists.

Steps to reproduce

  1. pnpm add -D wrangler@3.62.0
  2. echo hello > index.html
  3. pnpm wrangler pages dev .
  4. Command-click the URL in the console and see "hello" in the default browser
  5. [ctrl]+[c] to end the wrangler process
  6. echo 'name = "foo"' > wrangler.toml
  7. pnpm wrangler pages dev .
  8. Command-click the URL in the console and see that the default browser fails to return the page

Please provide a link to a minimal reproduction

No response

Please provide any relevant error logs

No response

scruffymongrel commented 3 months ago

Actually, this could be a misunderstanding on my part...

The Pages docs do indicate that wrangler configuration is for Functions and that "Configuration via wrangler.toml is in open beta."

That said, when I first ran into this problem, I was specifying a port in wrangler.toml, which was being applied successfully in a wrangler pages dev command. It also logged "No functions. Shimming..."

Is the observed behaviour unexpected so far as the team's concerned?

scruffymongrel commented 3 months ago

I mentioned this issue in the #functions channel on Discord and was asked whether using a subdirectory might help.

After checking, it appeared to still be a problem... in trying to get to Discord, I fumbled switching apps and landed in my browser, which was showing the expected content! When I checked the console, I saw a message similar to the following:

โœ˜ [ERROR] Failed to register worker in local service registry TypeError: fetch failed

      at fetch
  (/Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/wrangler@3.62.0/node_modules/wrangler/wrangler-dist/cli.js:17209:19)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async registerWorker
  (/Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/wrangler@3.62.0/node_modules/wrangler/wrangler-dist/cli.js:203827:12)
      at async Object.announceAndOnReady [as onReady]
  (/Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/wrangler@3.62.0/node_modules/wrangler/wrangler-dist/cli.js:206237:7)
  {
    cause: ConnectTimeoutError: Connect Timeout Error
        at onConnectTimeout
  (/Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/wrangler@3.62.0/node_modules/wrangler/wrangler-dist/cli.js:6031:29)
        at
  /Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/wrangler@3.62.0/node_modules/wrangler/wrangler-dist/cli.js:5987:51
        at Immediate._onImmediate
  (/Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/wrangler@3.62.0/node_modules/wrangler/wrangler-dist/cli.js:6019:13)
        at process.processImmediate (node:internal/timers:478:21)
        at process.topLevelDomainCallback (node:domain:160:15)
        at process.callbackTrampoline (node:internal/async_hooks:128:24) {
      code: 'UND_ERR_CONNECT_TIMEOUT'
    }
  }

[wrangler:inf] GET / 200 OK (5989ms)

This output is the result of pnpm wrangler pages dev . and seems to have resolved quicker than others (~6 seconds, whereas most have taken 10-12ish seconds).

scruffymongrel commented 3 months ago

Turns out I just needed to ps aux | grep wrangler to find the spare wrangler processes running on non-standard ports and kill them off. Problem solved.

ben-xD commented 2 months ago

Thanks, I also had this issue and turns out there was another wrangler process. I got error messages that was also shown in https://github.com/cloudflare/workers-sdk/issues/4562.

For SEO for other users, error looked like:

โœ˜ [ERROR] Failed to register worker in local service registry TypeError: fetch failed

      at fetch
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async registerWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:161308:12)
      at async Object.announceAndOnReady [as onReady]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:207007:7)
  {
    cause: HeadersTimeoutError: Headers Timeout Error
        at Timeout.onParserTimeout [as callback]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:923:17)
        at listOnTimeout (node:internal/timers:573:17)
        at process.processTimers (node:internal/timers:514:7) {
      code: 'UND_ERR_HEADERS_TIMEOUT'
    }
  }

โœ˜ [ERROR] Error in ProxyController: Error inside ProxyWorker

   Error
      at castErrorCause
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:209310:18)
      at ProxyController.emitErrorEvent
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:210438:16)
      at ProxyController.onProxyWorkerMessage
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:210331:14)
      at PROXY_CONTROLLER
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:210105:20)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async #handleLoopbackCustomService
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/miniflare@3.20240718.0/node_modules/miniflare/dist/src/index.js:8782:24)
      at async #handleLoopback
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/miniflare@3.20240718.0/node_modules/miniflare/dist/src/index.js:8824:20)
  {
    cause: {
      name: 'Error',
      message: 'Network connection lost.',
      stack: 'Error: Network connection lost.'
    }
  }

โœ˜ [ERROR] Failed to unregister worker TypeError: fetch failed

      at fetch
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async unregisterWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:161340:5)
      at async Promise.allSettled (index 0) {
    cause: HeadersTimeoutError: Headers Timeout Error
        at Timeout.onParserTimeout [as callback]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:923:17)
        at listOnTimeout (node:internal/timers:573:17)
        at process.processTimers (node:internal/timers:514:7) {
      code: 'UND_ERR_HEADERS_TIMEOUT'
    }
  }

โœ˜ [ERROR] Failed to unregister worker TypeError: fetch failed

      at fetch
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async unregisterWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:161340:5)
      at async Promise.allSettled (index 0) {
    cause: HeadersTimeoutError: Headers Timeout Error
        at Timeout.onParserTimeout [as callback]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:923:17)
        at listOnTimeout (node:internal/timers:573:17)
        at process.processTimers (node:internal/timers:514:7) {
      code: 'UND_ERR_HEADERS_TIMEOUT'
    }
  }

โœ˜ [ERROR] Failed to register worker in local service registry TypeError: fetch failed

      at fetch
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async registerWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:161308:12)
      at async Object.announceAndOnReady [as onReady]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:207007:7)
  {
    cause: HeadersTimeoutError: Headers Timeout Error
        at Timeout.onParserTimeout [as callback]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/wrangler@3.66.0_@cloudflare+workers-types@4.20240722.0/node_modules/wrangler/wrangler-dist/cli.js:923:17)
        at listOnTimeout (node:internal/timers:573:17)
        at process.processTimers (node:internal/timers:514:7) {
      code: 'UND_ERR_HEADERS_TIMEOUT'
    }
  }