Upload Android Archive Bundles (AABs)

If you distribute your app as an Android App Bundle (AAB), they contain all required files and so can be uploaded in a single command.

For installation instructions for the BugSnag CLI, please see our Installation guide.


The android-aab command extracts a given .aab file and uploads any NDK symbol or Proguard mapping files to the appropriate upload API. See the upload android-ndk and upload android-proguard commands for details.

In addition to the symbol and mapping files, the command extracts version and build information, including your BugSnag API key, required for the upload from your app’s manifest file (AndroidManifest.xml). These values can be overridden, or provided entirely, by command line options.

Example usage

The simplest way to run the command is to provide the path to the .aab file:

$ bugsnag-cli upload android-aab app/build/outputs/bundle/release/app-release.aab

Available options

Android NDK root (--android-ndk-root)

The path to your NDK installation, used to access the objcopy tool for extracting symbol information. This defaults to the path in the $ANDROID_NDK_ROOT environment variable.

API key (--api-key)

Your project’s API key. This defaults to the value of com.bugsnag.android.API_KEY in your app’s manifest file, if found.

You can find your API key in Project Settings from your BugSnag dashboard.

Application ID (--application-id)

The unique application ID, usually the package name, of the app. This defaults to the value of Package in your app’s manifest file, if found.

Build UUID (--build-uuid)

A unique identifier for the build. This is only required if you have multiple mapping files with the same applicationId and versionCode. This same ID must also be set in the BugSnag configuration in your app, so that errors match the uploaded build. See Unique build identifiers for more information.

Dry run (--dry-run)

Used to see the files and options that would be uploaded without actually sending them to the BugSnag endpoint.

Overwrite (--overwrite)

Whether to ignore and overwrite existing uploads with same identifier. By default the command will fail if a matching file exists.

Project root (--project-root)

Path to strip from the beginning of source file names referenced in stacktraces when displayed as an error in your dashboard. This will default to your project’s root directory if the command has detected one, otherwise it’s empty.

Retries (--retries)

The number of retry attempts before failing an upload. By default it is only attempted once.

Timeout (--timeout)

The number of seconds to wait before failing an upload attempt. By default the upload is given 300s (5 mins).

Upload API root URL (--upload-api-root-url)

The BugSnag On-premise upload server hostname, optionally containing port number. The command will append the appropriate path to access the correct BugSnag API upload endpoint.

Version code (--version-code)

The version code of this build of the app. This defaults to the value of VersionCode in your app’s manifest file, if found.

Version name (--version-name)

The version of the app. This defaults to the value of VersionName in your app’s manifest file, if found.