workers-sdk icon indicating copy to clipboard operation
workers-sdk copied to clipboard

🐛 BUG: `wrangler pages dev .` runs but content not accessible via browser if `wrangler.toml` exists

Open scruffymongrel opened this issue 1 year ago • 1 comments

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 [email protected]
  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 avatar Jul 01 '24 15:07 scruffymongrel

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 avatar Jul 01 '24 16:07 scruffymongrel

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/[email protected]/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/[email protected]/node_modules/wrangler/wrangler-dist/cli.js:203827:12)
      at async Object.announceAndOnReady [as onReady]
  (/Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/[email protected]/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/[email protected]/node_modules/wrangler/wrangler-dist/cli.js:6031:29)
        at
  /Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/[email protected]/node_modules/wrangler/wrangler-dist/cli.js:5987:51
        at Immediate._onImmediate
  (/Users/andy/=/quests/delete-me-pages/node_modules/.pnpm/[email protected]/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 avatar Jul 02 '24 12:07 scruffymongrel

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.

scruffymongrel avatar Jul 04 '24 08:07 scruffymongrel

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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async registerWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]_@[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:209310:18)
      at ProxyController.emitErrorEvent
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:210438:16)
      at ProxyController.onProxyWorkerMessage
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:210331:14)
      at PROXY_CONTROLLER
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]/node_modules/miniflare/dist/src/index.js:8782:24)
      at async #handleLoopback
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async unregisterWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async unregisterWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:17227:19)
      at async registerWorker
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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/[email protected]_@[email protected]/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/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:7405:33)
        at Timeout.onTimeout [as _onTimeout]
  (/Users/zen/Desktop/hono-rpc-openapi-cloudflare/node_modules/.pnpm/[email protected]_@[email protected]/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'
    }
  }

ben-xD avatar Jul 24 '24 12:07 ben-xD