Handle errors with Cloud Storage for C++

Sometimes when you're building an app, things don't go as planned and an error occurs.

When in doubt, check the error returned, and see what the error message says.

If you've checked the error message and have Cloud 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.

Name Reason
kErrorNone There was no error.
kErrorUnknown An unknown error occurred.
kErrorObjectNotFound No object exists at the specified reference.
kErrorBucketNotFound No bucket is configured for Cloud Storage.
kErrorProjectNotFound No project is configured for Cloud Storage.
kErrorQuotaExceeded Quota on your Cloud Storage bucket has been exceeded. If you're on the Spark pricing plan, consider upgrading to the pay-as-you-go Blaze pricing plan. If you're already on the Blaze pricing plan, reach out to Firebase Support.

Important: Starting October 1, 2025, the Blaze pricing plan will be required to use Cloud Storage, even default buckets.
kErrorUnauthenticated User is unauthenticated. Authenticate and try again.
kErrorUnauthorized User is not authorized to perform the requested action. Check your rules to ensure they are correct.
kErrorRetryLimitExceeded The maximum time limit on an operation (upload, download, delete, etc.) has been exceeded. Try uploading again.
kErrorNonMatchingChecksum File on the client does not match the checksum of the file received by the server. Try uploading again.
kErrorCanceled User canceled the operation.
kErrorDownloadSizeExceeded Size of the downloaded file exceeds the amount of memory allocated for the download. Increase memory cap and try downloading again.