Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jan 19, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

penalosa and others added 6 commits January 19, 2026 14:33
* Add user-friendly error handling for file not found errors

Handle ENOENT errors with clear, actionable messages instead of raw error
codes. These are environmental issues where users reference files or
directories that don't exist, so we suppress Sentry reporting and show
the missing path with helpful guidance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Mark macOS version errors as UserError in CLI package

Updates the CLI package to throw UserError instead of generic Error for
macOS version compatibility issues. This ensures version incompatibility
errors are properly classified as user-facing errors that shouldn't be
reported to Sentry.

Also includes changeset for this change.

* Update packages/wrangler/src/core/handle-errors.ts

Co-authored-by: Ben <4991309+NuroDev@users.noreply.github.com>

* Improve error message when creating duplicate KV namespace

When attempting to create a KV namespace that already exists, provide
a clear, user-friendly error message instead of the generic API error.
The new message explains that the namespace already exists and suggests
running `wrangler kv namespace list` to see existing namespaces with
their IDs, or choosing a different namespace name.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* user error in env types

* Improve error handling for Vite config transformations

Replace assertions with proper error handling when transforming Vite
configs. When Wrangler encounters a Vite config that uses a function
or lacks a plugins array, it now provides clear, actionable error
messages instead of crashing with assertion failures.

The check function gracefully skips incompatible configs with debug
logging, while the transform function throws helpful UserError messages
with examples of how to manually add the Cloudflare plugin.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Wrangler test failures

- Fix vite-config tests by setting logger level to debug to capture debug messages
- Update snapshots for FormData boundary formatting changes in deploy and pages tests

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* wording

* Add FormData boundary normalization for cross-platform test consistency

Adds normalization code to ensure FormData boundaries format consistently
across different platforms (macOS vs Linux) in test snapshots.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Suppress network fetch errors from Sentry and show user-friendly messages

Add handling for "fetch failed" / "Failed to fetch" TypeError exceptions
to prevent them from being sent to Sentry and instead display helpful
error messages to users about network connectivity issues.

Changes:
- Add isNetworkFetchFailedError() function in handle-errors.ts to detect
  generic network fetch failures
- Display user-friendly error message explaining common network issues
- Mark these errors as non-reportable to Sentry (environmental issues)
- Update sentry tests to use API errors instead of network errors for
  testing reportable error behavior
- Add test coverage for network error suppression

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix tests

* fix tests

* fix tests

* remove duplicate calls

* format

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Ben <4991309+NuroDev@users.noreply.github.com>
)

* [miniflare] Add MessageBuilder support for Email Sending API in local mode

Implements support for the simplified MessageBuilder interface in Miniflare's
Email Sending API binding. This provides a developer-friendly alternative to
manually constructing MIME messages with the EmailMessage API.

Key changes:
- Add TypeScript types for MessageBuilder API (types.ts)
- Implement send() overload accepting MessageBuilder alongside EmailMessage
- Store email content (text, HTML, attachments) to viewable temp files
- Extract common storeTempFile() helper to reduce duplication
- Add comprehensive test coverage (12 new tests)

In local mode, content is saved to files that developers can open in their
editor/browser for inspection, with file paths logged to the console.

* Address PR review comments

- Simplify changeset description
- Shorten example subject to 'Hello'
- Remove trailing newline in changeset
- Remove extra blank line in send_email.worker.ts

* Add MessageBuilder examples to email-worker fixture

Adds comprehensive manual testing examples for the MessageBuilder API:
- /send-simple: Basic text-only email
- /send-html: Email with text and HTML content
- /send-attachment: Single text attachment
- /send-multi-attachment: Multiple attachment types (text, JSON, binary)
- /send-complex: Multiple recipients (to/cc/bcc)
- /test-bindings: Test all three binding types

Also includes:
- README with complete usage instructions
- Documentation of expected console output
- Notes about type assertions (types not yet in @cloudflare/workers-types)

Tested locally - all routes work correctly.

* Fix MessageBuilder validation to extract email from EmailAddress objects

The validateMessageBuilder function was passing EmailAddress objects
(with { name, email } structure) directly to validateRecipients, which
expected strings. This caused the error 'email to [object Object] not allowed'.

Fix: Extract email addresses from EmailAddress objects before validation
using the existing extractEmailAddress helper.

Tested with fixture routes that use EmailAddress objects:
- /send-simple (named sender)
- /send-complex (multiple recipients with names)

All tests pass.

* Fix snapshot test to handle Windows file paths

The MessageBuilder snapshot test was failing on Windows because the regex
only matched Unix-style paths (/...). Updated the regex to also match
Windows paths (C:\...) while still normalizing both to the same format.

Regex now matches:
- Unix: /var/folders/.../email-text/uuid.txt
- Windows: C:\Users\...\email-text\uuid.txt

Both normalize to: /email-text/[FILE].txt

* Add MessageBuilder support for remote mode email bindings

The proxy server previously only handled EmailMessage objects by
reconstructing them from the serialized 'EmailMessage::raw' property.
This fix adds detection for MessageBuilder objects and passes them
through directly since they're already plain serializable objects.

Changes:
- Check if the argument has 'EmailMessage::raw' property to distinguish
  EmailMessage from MessageBuilder
- EmailMessage: Reconstruct with EmailMessage constructor (existing behavior)
- MessageBuilder: Pass through directly as plain object (new behavior)

Both APIs now work correctly in remote mode via wrangler dev --remote.

* chore(deps): bump the workerd-and-workers-types group with 2 updates

Bumps the workerd-and-workers-types group with 2 updates: [workerd](https://github.com/cloudflare/workerd) and [@cloudflare/workers-types](https://github.com/cloudflare/workerd).


Updates `workerd` from 1.20260115.0 to 1.20260116.0
- [Release notes](https://github.com/cloudflare/workerd/releases)
- [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md)
- [Commits](cloudflare/workerd@v1.20260115.0...v1.20260116.0)

Updates `@cloudflare/workers-types` from 4.20260115.0 to 4.20260116.0
- [Release notes](https://github.com/cloudflare/workerd/releases)
- [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md)
- [Commits](https://github.com/cloudflare/workerd/commits)

---
updated-dependencies:
- dependency-name: workerd
  dependency-version: 1.20260116.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: workerd-and-workers-types
- dependency-name: "@cloudflare/workers-types"
  dependency-version: 4.20260116.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: workerd-and-workers-types
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: update dependencies of "miniflare", "wrangler"

The following dependency versions have been updated:

| Dependency | From         | To           |
| ---------- | ------------ | ------------ |
| workerd    | 1.20260115.0 | 1.20260116.0 |

* Add dummy message ID

* add comments

* Update packages/miniflare/src/workers/email/send_email.worker.ts

Co-authored-by: emily-shen <69125074+emily-shen@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <wrangler@cloudflare.com>
Co-authored-by: emily-shen <69125074+emily-shen@users.noreply.github.com>
…te-cloudflare/src/frameworks (#11865)

* [C3] Bump create-react-router

Bumps [create-react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/create-react-router) from 7.11.0 to 7.12.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/create-react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/create-react-router@7.12.0/packages/create-react-router)

---
updated-dependencies:
- dependency-name: create-react-router
  dependency-version: 7.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: update dependencies of "create-cloudflare"

The following dependency versions have been updated:

| Dependency          | From   | To     |
| ------------------- | ------ | ------ |
| create-react-router | 7.11.0 | 7.12.0 |

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <wrangler@cloudflare.com>
…re that the tests don't rely on the miniflare package (#11973)

* Mock createRequire call in `getLocalWorkerdCompatibilityDate` to ensure that the tests don't rely on the miniflare package

* remove no longer necessary regex
@pull pull bot locked and limited conversation to collaborators Jan 19, 2026
@pull pull bot added the ⤵️ pull label Jan 19, 2026
@pull pull bot merged commit 512e2b3 into code:main Jan 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants