Skip to content

[Miniflare] Clean up listener error handling - #15515

Open
Wichtowski wants to merge 6 commits into
cloudflare:mainfrom
Wichtowski:fix/miniflare-listener-cleanup-15487
Open

[Miniflare] Clean up listener error handling#15515
Wichtowski wants to merge 6 commits into
cloudflare:mainfrom
Wichtowski:fix/miniflare-listener-cleanup-15487

Conversation

@Wichtowski

@Wichtowski Wichtowski commented Sep 4, 2026

Copy link
Copy Markdown

Fixes #15487.

Removes startup-only error handlers after successful loopback and inspector binds. Servers are now closed after bind failures while preserving the original error.

The inspector WebSocket server is initialized after the listener is ready so it cannot intercept startup errors.

Depends on #15485.


  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:
  • Public documentation
    • Cloudflare docs PR(s):
    • Documentation not necessary because: This is an internal listener lifecycle fix with no public API changes.

A picture of a cute animal (not mandatory, but encouraged)
image


Devin Review

RealBhupesh and others added 3 commits September 3, 2026 16:26
Attach an error listener before listen in #startLoopbackServer so bind
failures reject ready instead of becoming uncaught exceptions. Guard
#stopLoopbackServer when the loopback server never started so dispose
still settles after a startup failure.

Fixes cloudflare#15466
Clear #loopbackServer and #loopbackHost after a successful stop so a failed
bind during setOptions does not leave a stopped server cached. Add regression
test for recovery after an unbindable host update.
@changeset-bot

changeset-bot Bot commented Sep 4, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d944af6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 8 packages
Name Type
miniflare Patch
@cloudflare/deploy-helpers Patch
@cloudflare/pages-shared Patch
@cloudflare/remote-bindings Patch
@cloudflare/runtime-types Patch
@cloudflare/vite-plugin Patch
@cloudflare/vitest-plugin Patch
wrangler Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@workers-devprod
workers-devprod requested review from a team and NuroDev and removed request for a team September 4, 2026 21:19
@workers-devprod

workers-devprod commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Codeowners approval required for this PR:

  • @cloudflare/wrangler
Show detailed file reviewers
  • .changeset/miniflare-loopback-bind-error.md: [@cloudflare/wrangler]
  • .changeset/tidy-miniflare-listeners.md: [@cloudflare/wrangler]
  • fixtures/additional-modules/test/index.test.ts: [@cloudflare/wrangler]
  • packages/miniflare/src/index.ts: [@cloudflare/wrangler]
  • packages/miniflare/src/plugins/core/inspector-proxy/inspector-proxy-controller.ts: [@cloudflare/wrangler]
  • packages/miniflare/test/dev-registry.spec.ts: [@cloudflare/wrangler]
  • packages/miniflare/test/index.spec.ts: [@cloudflare/wrangler]
  • packages/miniflare/test/plugins/browser/process.spec.ts: [@cloudflare/wrangler]
  • packages/miniflare/test/plugins/core/inspector-proxy/index.spec.ts: [@cloudflare/wrangler]

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Devin Review: 1 flag

Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

@pkg-pr-new

pkg-pr-new Bot commented Sep 4, 2026

Copy link
Copy Markdown
@cloudflare/autoconfig

npm i https://pkg.pr.new/@cloudflare/autoconfig@15515

@cloudflare/build-output-utils

npm i https://pkg.pr.new/@cloudflare/build-output-utils@15515

@cloudflare/codemods

npm i https://pkg.pr.new/@cloudflare/codemods@15515

@cloudflare/config

npm i https://pkg.pr.new/@cloudflare/config@15515

create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@15515

@cloudflare/deploy-helpers

npm i https://pkg.pr.new/@cloudflare/deploy-helpers@15515

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@15515

miniflare

npm i https://pkg.pr.new/miniflare@15515

@cloudflare/pages-functions

npm i https://pkg.pr.new/@cloudflare/pages-functions@15515

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@15515

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@15515

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@15515

@cloudflare/vitest-plugin

npm i https://pkg.pr.new/@cloudflare/vitest-plugin@15515

@cloudflare/workers-auth

npm i https://pkg.pr.new/@cloudflare/workers-auth@15515

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@15515

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@15515

wrangler

npm i https://pkg.pr.new/wrangler@15515

commit: d944af6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.

[miniflare] Remove listen() error reject handlers after bind succeeds (loopback + inspector)

3 participants