Handle Errors on Android

Sometimes things don't go as planned and an error occurs.

When in doubt, check the error returned and see what the error message says. The following code shows a custom error handler implementation that inspects the error code and error message returned by Firebase Storage. Such error handlers can be added to various objects used in the Storage API (for example, UploadTask and FileDownloadTask).

class MyFailureListener implements OnFailureListener {
  @Override
  public void onFailure(@NonNull Exception exception) {
    int errorCode = ((StorageException) exception).getErrorCode();
    String errorMessage = exception.getMessage();
    // test the errorCode and errorMessage, and handle accordingly
  }
}

If you've checked the error message and have Storage Security Rules that allow your action, but are still struggling to fix the error, visit our Support page and let us know how we can help.

Handle Error Messages

There are a number of reasons why errors may occur, including the file not existing, the user not having permission to access the desired file, or the user cancelling the file upload.

To properly diagnose the issue and handle the error, here is a full list of all the errors our client will raise, and how they can occur. Error codes in this table are defined in the StorageException class as integer constants.

Code Reason
ERROR_UNKNOWN An unknown error occurred.
ERROR_OBJECT_NOT_FOUND No object exists at the desired reference.
ERROR_BUCKET_NOT_FOUND No bucket is configured for {{
: : firebase_storage }} :
ERROR_PROJECT_NOT_FOUND No project is configured for {{
: : firebase_storage }} :
ERROR_QUOTA_EXCEEDED Quota on your Cloud Storage bucket
: : has been exceeded. If you're on the free :
: : tier, upgrade to a paid plan. If you're on a :
: : paid plan, reach out to Firebase support. :
ERROR_NOT_AUTHENTICATED User is unauthenticated, please authenticate
: : and try again. :
ERROR_NOT_AUTHORIZED User is not authorized to perform the desired
: : action, check your rules to ensure they are :
: : correct. :
ERROR_RETRY_LIMIT_EXCEEDED The maximum time limit on an operation
: : (upload, download, delete, etc.) has been :
: : excceded. Try again. :
ERROR_INVALID_CHECKSUM File on the client does not match the
: : checksum of the file recieved by the server. :
: : Try uploading again. :
ERROR_CANCELED User canceled the operation.

Additionally, attempting to call getReferenceFromUrl() with an invalid URL will result in an IllegalArgumentException from being thrown. The argument to the above method must be of the form gs://bucket/object or https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>

Send feedback about...

Need help? Visit our support page.