Repository navigation
fix(deps): Bump the sentry CLI to ^0.49.0 - #26200
Merged
Merged
Conversation
SDK calls in sentry 0.49.0 write no local state by default, so release creation and source map uploads no longer fail when the CLI's cli.db can't be opened (for example after another Node version created it). Closes #26197 Co-Authored-By: BYK <126780+BYK@users.noreply.github.com>
BYK
approved these changes
Nov 7, 2026
BYK
marked this pull request as ready for review
November 7, 2026 11:43
BYK
requested review from
andreiborza,
chargome,
logaretm,
msonnb,
mydea and
s1gr1d
and removed request for
a team
November 7, 2026 11:43
BYK
enabled auto-merge (squash)
November 7, 2026 11:43
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 08211e8. Configure here.
Contributor
size-limit report 📦Compared: 3674892 (PR test merge using develop at 5b78f8e) Against: 5b78f8e (develop) · base run #65363 ✅ Baseline matches: this diff contains only this PR's changes.
|
Contributor
Optional E2E testsSome optional checks were not successful. They do not block the merge. 7 not successful, 50 successful. See the run.
Successful checks
|
51 tasks done
JPeer264
pushed a commit
that referenced
this pull request
Nov 10, 2026
…aps (#26092) **Why:** The new `sentry` CLI throws a `ValidationError` for any directory that has no JS + source map pairs. `SentryCliAdapter.uploadSourcemaps` uploads directories one at a time, so the first empty directory stops the whole loop. `@sentry/nextjs` uploads `.next/server` first, so if server source maps are off, the client chunks that do have maps never get uploaded. The plugin only logs the error and the build passes, so this goes unnoticed. CLI 0.48+ stops reporting this error to Sentry, but it still throws, so the upload still stops without this change. The CLI check stays strict on purpose, because it catches build misconfiguration. The adapter now passes `allowEmpty: true`, collects the directories that uploaded 0 files, and logs a warning for each. In direct-upload mode, "Successfully uploaded" is logged only if at least one directory actually uploaded something. The staged-upload path already returns early with a warning when no artifact has a source map, so it is unchanged. Before: ``` [@sentry/nextjs - Node.js] Error: An error occurred. Couldn't finish all operations: ValidationError: Found 214 JS file(s) in '.next/server' but no companion .map files. [...] Pass --allow-empty to suppress. # .next/static/chunks is never uploaded ``` After: ``` [@sentry/nextjs - Node.js] Warning: No source maps found in ".next/server", so nothing was uploaded from it. This usually means source map generation is not enabled for this build output. Enable it so Sentry can un-minify stack traces from these files. [@sentry/nextjs - Node.js] Info: Successfully uploaded source maps to Sentry # .next/static/chunks is uploaded ``` **How to review:** Start with `src/core/cli.ts`, then the two call sites in `build-plugin-manager.ts`. `cli-contract.test.ts` runs the real CLI (now `sentry@^0.49.0` after #26200) against the mock server with one empty directory followed by one real directory. **Unsure about:** A directory that does not exist still throws and stops the loop; `allowEmpty` only covers existing directories without source maps. I left that case out of this PR. <!-- junior-request-attribution:start --> via **bete**, @betegon. <!-- junior-request-attribution:end --> <!-- junior-session-footer:start --> <!-- junior-conversation-id:local%3Aweb%3A667ad986d499815a40e93973 --> -- [View Session in Sentry](https://sentry.sentry.io/explore/conversations/local%3Aweb%3A667ad986d499815a40e93973/?project=4510944073809921) <!-- junior-session-footer:end --> --------- Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com> Co-authored-by: Miguel Betegon <miguel.betegon@sentry.io> Co-authored-by: bete <28983162+betegon@users.noreply.github.com>
mydea
added a commit
that referenced
this pull request
Nov 11, 2026
…undles (#26277) **Why:** The `solidstart-2` e2e test has been failing on `develop` since #26200 bumped the Sentry CLI to `^0.49.0`. The server entry of `@sentry/solidstart` still re-exports the deprecated SolidStart 1 `withSentry`. That pulls `@sentry/bundler-plugins`, and with it the CLI and `oxc-parser`, into the Nitro server graph. Starting with 0.48, the CLI ships as code-split ESM. Rolldown still emits its dynamic-import chunks after tree-shaking the code that imports them; Rollup doesn't. Nitro also traces `oxc-parser`'s native binding. For every SolidStart 2 app, the result is about 3.6 MB of unused build tooling in `.output/server` (5.3 MB → 1.7 MB with this change). The CLI chunk also carries the CLI's own debug IDs, which the app can't upload, and that's the assertion that fails. Removing the root `withSentry` export is breaking (#25915, v12), and lazy imports are off the table. So `sentrySolidStart()` now adds a `sentry-solidstart-runtime` export condition to server environments. The exports map resolves that condition to the existing server entry, which is the same as today's minus `withSentry`. SolidStart 1's `app.config.ts` never sets the condition, so it still gets `withSentry`. **How to review:** Start with the `exports` change in `package.json`, then `makeServerEntryPlugin`. Locally, `solidstart-2` (including the tunnel-basepath dev variant) and `solidstart` pass against CI tarballs. **Unsure about:** Whether a custom export condition is the shape we want here, versus living with the bloat until v12. The plugin only extends conditions that are already set, because Vite would otherwise replace its defaults. Nitro and SolidStart always set them for their server environments. Separately, the Rolldown behaviour seems worth an upstream issue. <!-- junior-request-attribution:start --> via **Francesco Gringl-Novy**. <!-- junior-request-attribution:end --> <!-- junior-session-footer:start --> <!-- junior-conversation-id:slack%3AD0CA8FXFXAS%3A1794301479.516639 --> -- [View Session](https://junior-prod.sentry.dev/conversations/slack%3AD0CA8FXFXAS%3A1794301479.516639) [[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AD0CA8FXFXAS%3A1794301479.516639/?project=4510944073809921) <!-- junior-session-footer:end --> Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com> Co-authored-by: Francesco Gringl-Novy <francesco.novy@sentry.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Why: Before
sentry0.49.0, everycreateSentrySDK()call opened and wrote the CLI's localcli.db. When a build runs on a different Node version than the one that created that file (for example throughnpx sentry), the open fails withSQLite3Error: unable to open database file. The build still passes, but release creation and source map uploads fail silently. In 0.49.0, SDK calls write no local state by default (getsentry/toolkit#2074) and fall back to running withoutcli.db(getsentry/toolkit#2069, getsentry/toolkit#2070). This bumps@sentry/bundler-plugins,@sentry/remixand@sentry/react-router, plus the bundler plugin integration tests so the workspace resolves a single version. None of them setpersist, so the new default applies as-is.How to review: The four
package.jsonranges and the lockfile. 0.49.0 was published today, so pnpm added it tominimumReleaseAgeExclude, as with the earlier first-party@sentry/*entries there.Unsure about: The
cloudflare-*-send-to-sentrye2e apps pinsentry@~0.44.1on their own. I left them alone because they're separate test apps and don't go through the bundler plugin.Closes #26197
via @BYK.
--
View Session in Sentry