serializeOptions. String/number options now validate input types and prevent Array.prototype.concat() from flattening array values into separate CLI arguments. (#3287)--exclude to scope the bundle to a single variant (#3275).[<module>/]src/<sourceset>/<lang>/ prefix from bundle URLs so Symbolicator can resolve them from package-based stack traces (e.g. sentry-android-core/src/main/java/io/sentry/android/core/ANRWatchDog.java → ~/io/sentry/android/core/ANRWatchDog.jvm) (#3275).--selective flag to build snapshots to indicate the upload contains only a subset of images (#3268).java, .kt, .scala, .groovy), respecting .gitignore, and excluding common build output directories (#3260)--exclude option for custom glob patterns to exclude files/directories from source collection (#3260)eprintln! with log::info! for progress bar completion messages when the progress bar is disabled (e.g. in CI). This avoids spurious stderr output that some CI systems treat as errors (#3223).--diff-threshold option to build snapshots to set a minimum pixel difference percentage for reporting image changes (#3259)sentry-cli build download command to download installable builds (IPA/APK) by build ID (#3221).sentry-cli code-mappings upload command to bulk upload code mappings from a JSON file (#3207, #3208, #3209, #3210).
com/example/module) to source paths in your repository (e.g. src/main/java/com/example/module), enabling Sentry to display source context and link directly to your code from error stack traces.--repo and --default-branch..xcarchive or .ipa files on non-Apple Silicon Macs (#3211).sentry-cli build snapshots command (#3163).sentry-cli proguard uuid <PATH> to compute and print the UUID for a ProGuard mapping file (#3176).sentry-cli upload-proguard to sentry-cli proguard upload, aligning the API with similar upload commands like debug-files upload and sourcemaps upload (#3174). sentry-cli upload-proguard remains supported as an alias, so no migration is required.sentry-cli build snapshots command to upload build snapshots to a project (#3110).
minimatch dependency to fix a vulnerability (#3153)dart-symbol-map upload command now correctly resolves the organization from the auth token payload (#3065).sentry.io requests to reduce intermittent failures for some users (#3085)sourceMaps.inject() for injecting debug IDs (#3088)--install-group parameter to sentry-cli build upload for controlling update visibility between builds (#3094)*.ghe.com URLs as github_enterprise VCS provider (#3127).dart-symbol-map command did not accept the --url argument (#3108).build upload polling loop to prevent infinite loop when server returns unexpected state (#3118).releases.newDeploy() method. This method now accept a projects option (array of project slugs), aligning them with the Rust CLI's multi-project capabilities and matching the existing behavior of releases.new() and releases.uploadSourceMaps() (#3001).sentry-cli releases new command for users with self-hosted Sentry instances on versions older than 25.12.1 (#3068).sentry-cli releases list command ignored the --project option (#3048). The command now correctly can filter releases by a single project when supplied via --project. This change does not enable filtering by multiple projects, which has never been supported.Our versioning policy has reclassified the minimum supported self-hosted Sentry version as being part of the public API. Therefore, we will only increase this minimum supported self-hosted Sentry version in a major release of Sentry CLI.
sentry build upload) in preparation for this week's beta release! (#3038)sentry-cli 3.0.0 and above only officially supports Sentry SaaS and Sentry self-hosted versions 25.11.1 and higher. While many Sentry CLI features may, in practice, continue working with some older Sentry versions, continued support for Sentry versions older than 25.11.1 is not guaranteed. Changes which break support for Sentry versions below 25.11.1 may occur in minor or patch releases.
Sentry CLI now defines a semantic versioning policy. We did not explicitly define a versioning policy previously, and this new policy should give more clarity about what can change in minor or patch releases versus what requires a major version bump.
sentry-cli files ... and sentry-cli releases files ... subcommands (#2956). These commands provided functionality for managing release files, a feature that has been deprecated in Sentry. Users still using sentry-cli files upload to upload source maps should migrate to sentry-cli sourcemaps upload.sentry-cli sourcemaps explain command (#2947). The command had been deprecated for some time, since Sentry now has a better in-product debugging flow for source map problems via the "Unminify Code" button, which is displayed on any JavaScript issues which could not be unminified.sentry-cli send-metric ... subcommands (#3006). These commands have been deprecated, and the data they send is no longer accepted by Sentry.--api-key CLI flagSENTRY_API_KEY environment variableapi_key configuration file fieldapiKey option in the JavaScript APIupload-proguard subcommand's --app-id, --version, --version-code, --android-manifest, and --platform arguments (#2876, #2940, #2948). Users using these arguments should stop using them, as they are unnecessary. The information passed to these arguments is no longer visible in Sentry.--started argument from the sentry-cli releases finalize command (#2972). This argument is a no-op, so any users using it should simply stop using it.The following changes only apply when using sentry-cli via the npm package @sentry/cli:
The SentryCli.execute method's live parameter now only takes boolean values (#2971). Setting live to true now behaves like 'rejectOnError' did previously, with a zero exit status resolving the returned promise with "success (live mode)" and a non-zero status rejecting the promise with an error message.
The option parameter to Releases.uploadSourceMaps no longer takes a live property (#2971). We now always execute the command with live set to true.
Removed the apiKey option from SentryCliOptions (#2935). If you are using apiKey, you need to generate and use an Auth Token via the authToken option, instead.
Removed the useArtifactBundle option from SentryCliUploadSourceMapsOptions (#3002). This deprecated option was a no-op that users should simply stop passing.
Drop support for Node.js <18. The minimum required Node.js version is now 18.0.0 (#2985).
The type export SentryCliReleases has been removed.
The JavaScript wrapper now uses named exports instead of default exports (#2989). You need to update your imports:
// Old (default import)
const SentryCli = require
sentry-cli upload-proguard command now uses chunked uploading by default (#2918). Users who previously set the SENTRY_EXPERIMENTAL_PROGUARD_CHUNK_UPLOAD environment variable to opt into this behavior no longer need to set the variable.debugId field, per the TC39 Debug ID proposal (#3005). This change affects the sentry-cli sourcemaps inject command and, unless --no-rewrite is passed, the sentry-cli sourcemaps upload command. Sentry CLI can still read the debug_id field, but whenever the CLI writes or rewrites a source map, we always use debugId.sentry-cli build upload command now automatically tracks Sentry plugin versions from the SENTRY_PIPELINE environment variable (#2994). When SENTRY_PIPELINE contains a recognized Sentry plugin (e.g., sentry-gradle-plugin/4.12.0 or sentry-fastlane-plugin/1.2.3), the plugin version is written to the .sentry-cli-metadata.txt file in uploaded build archives, enabling the backend to store metadata for size analysis and build distribution tracking.npm run (#3030). This change ensures the postinstall script remains compatible with package managers other than npm.sentry-cli build upload command, we now only auto-detect Git metadata when we detect we are running in a CI environment, unless the user manually overrides this behavior (#2974). This change prevents local development builds from triggiering GitHub status checks for size analysis.
--force-git-metadata and --no-git-metadata, which force-enable and force-disable automatic Git data collection, respectively, overriding the default behavior.sentry-cli build upload command now automatically detects the correct branch or tag reference in non-PR GitHub Actions workflows (#2976). Previously, --head-ref was only auto-detected for pull request workflows. Now it works for push, release, and other workflow types by using the GITHUB_REF_NAME environment variable.sentry-cli sourcemaps inject command could inject JavaScript code into certain incorrectly formatted source map files, corrupting their JSON structure (#3003).sentry-cli build upload command's --head-sha and --base-sha arguments (#2945). The CLI now validates that these are valid SHA1 sums. Passing an empty string is also allowed; this prevents the default values from being used, causing the values to instead be unset.sentry-cli build upload command's --vcs-provider, --head-repo-name, --head-ref, --base-ref, and --base-repo-name arguments resulted in 400 errors (#2946). Now, setting these to empty strings instead explicitly clears the default value we would set otherwise, as expected.sentry-cli debug-files bundle-jvm no longer makes any HTTP requests to Sentry, meaning auth tokens are no longer needed, and the command can be run offline (#2926).base_sha and base_ref when they equal head_sha during auto-inference, since comparing a commit to itself provides no meaningful baseline (#2924).sentry-cli sourcemaps upload. The error now correctly indicates the organization doesn't exist, rather than incorrectly suggesting the Sentry server lacks artifact bundle support (#2931).sentry-cli build upload commands (#2899, #2905). At the time of this release, build uploads are still in closed beta on the server side, so most customers cannot use this functionality quite yet.upload-proguard subcommand's --platform flag (#2863). This flag was a no-op for some time, so we will remove it in the next major.upload-proguard subcommand's --android-manifest flag (#2891). This flag was a no-op for some time, so we will remove it in the next major.sentry-cli sourcemaps upload command's --no-dedupe flag (#2913). The flag was no longer relevant for sourcemap uploads to modern Sentry servers and was made a no-op.--base-ref, --base-sha) when using the build upload subcommand in git repos. Previously this worked only in the context of GitHub workflows (#2897, #2898).sentry-cli sourcemaps upload command by eliminating an HTTP request to the Sentry server, which was not required in most cases (#2913).projects field to SentryCliUploadSourceMapsOptions (#2856)upload-proguard subcommand's --app-id, --version, and --version-code flags (#2852), as we plan to remove these flags in Sentry CLI 3.x. Users should simply stop using the flags; the values specified there have never had an effect on deobfuscation, and are no longer visible in Sentry.sentry-cli debug-files bundle-jvm and sentry-cli sourcemaps upload. Any stderr output during the progress bar was lost if stderr was redirected.SENTRY_RELEASE environment variable (#2807) by @szokeasaurusrex2.53.0-alpha reintroduced the build (previously named mobile-app) commands. 2.53.0 is the first stable release to reintroduce them.
Please note, the build commands are still experimental, and are therefore subject to breaking changes, including removal, in any release, without notice.
This release reintroduces the build (previously named mobile-app) commands.
dart-symbol-map upload command (#2691) by @buenaflorcollect (#2705) by @szokeasaurusrex--no-upload (#2693) by @P1n3appl3logs command as beta (#2690) by @szokeasaurusrexThis release introduces a new sentry-cli logs list command, which lists your Sentry logs. For more details, see sentry-cli logs list --help.
Please note: if you receive a 403 error when using the new command, you may need to generate a new auth token with different permissions. You can do this by navigating to Settings → Developer Settings → Personal Tokens in Sentry. On the Personal Tokens page, generate a token with org:read scope, and pass this to the command using --auth-token or by setting the SENTRY_AUTH_TOKEN environment variable.
releases files upload-sourcemaps (#2676) by @szokeasaurusrexThis change removes the mobile-app upload experimental feature which was introduced in 2.50.1.
This release introduces the new experimental mobile-app upload subcommand. This command is experimental, and therefore subject to changes, including breaking changes and/or removal, in any release. The command might not work as expected.
rejectOnError in public execute type declarations (#2628) by @Lms24live option type for releases.uploadSourceMaps (#2627) by @Lms24live: 'rejectOnError' execution mode to execute method (#2605) by @Lms24No user-facing changes.
mobile-app command from release builds (#2582) by @szokeasaurusrexreact-native appcenter as deprecated (#2522) by @chromynpm package on Android (#2524) by @szokeasaurusrex--started flag (#2515) by @szokeasaurusrexorig_path for bundle sources output file name (#2514) by @szokeasaurusrexfiles subcommands as deprecated. (#2512) by @Swatinemsentry-cli sourcemaps upload command, like so:
sentry-cli sourcemaps upload -p project1 -p project2 /path/to/sourcemaps
fixup_js_file_end (#2475) by @szokeasaurusrexLegacyUploadContext for legacy uploads (#2494) by @szokeasaurusrextokio to 1.44.2 (#2474) by @szokeasaurusrexThis release explicitly deprecates the sentry-cli debug-files upload command's --info-plist argument, since the argument does nothing. If you are using the --info-plist argument, you should stop using it.
xcodebuild (#2443) by @szokeasaurusrexThis is a re-release of 2.45.5-alpha as a stable release. There are no code changes from 2.45.5-alpha, since the Windows ARM build for that version was published successfully.
This release adds a binary for Windows on ARM.
We are releasing this as an alpha to test that the new Windows ARM build is published to NPM correctly.
npm (#2436) by @szokeasaurusrexis_homebrew_install (#2434) by @szokeasaurusrexset_executable_mode (#2433) by @szokeasaurusrexusername with whoami (#2432) by @szokeasaurusrexwinapi dependency (#2431) by @szokeasaurusrex-D warnings (#2425) by @szokeasaurusrexactions-rs (#2424) by @szokeasaurusrexzip dependency (#2421) by @szokeasaurusrexsemver@5.* dependencies (#2399) by @szokeasaurusrexsemver@6.* (#2400) by @szokeasaurusrexsemver@^7.* dependencies (#2398) by @szokeasaurusrexcross-spawn@7.0.X (#2396) by @szokeasaurusrexcross-spawn@^6.0.5 (#2395) by @szokeasaurusrexThis release is a re-release of 2.42.0. There are no code changes to the CLI. We are performing this re-release because 2.42.0 failed to publish to Docker Hub.
With this release, we now build and publish multi-architecture (arm64 and aarch64) Docker images for Sentry CLI.
--use-artifact-bundle option (#2349) by @szokeasaurusrexuseArtifactBundle JS option (#2348) by @szokeasaurusrexdocker (#2390) by @szokeasaurusrexurl crate (#2379) by @szokeasaurusrexunnecessary_wraps for add_debug_id_references (#2369) by @szokeasaurusrexunnecessary_wraps for add_sourcemap_references (#2368) by @szokeasaurusrexunnecessary_wraps lint for SourceMapsProcessor::add (#2367) by @szokeasaurusrexlookup_pos not return Option (#2366) by @szokeasaurusrexApi::with_body return Self (#2363) by @szokeasaurusrexwith_retry return Self (#2365) by @szokeasaurusrexprogress_bar_mode return Self (#2364) by @szokeasaurusrexunnecessary_wraps lint for set_auth (#2362) by @szokeasaurusrexResult from Config::from_file (#2361) by @szokeasaurusrexclippy::unnecessary_wraps lint (#2358) by @szokeasaurusrex-D warnings (#2359) by @szokeasaurusrex--log-level parsing (#2356) by @szokeasaurusrexdotenv with dotenvy (#2351) by @szokeasaurusrex
.env files--use-artifact-bundle flag from sentry-cli sourcemaps upload (#3002). The flag was a no-op that only emitted a deprecation warning.For ESM imports:
// Old
import SentryCli from '@sentry/cli';
// New
import { SentryCli } from '@sentry/cli';