firebase / firebase/firebase-ios-sdk
FR: Output an explicit error from upload-symbols executable when upload quota is exceeded
- Dominant language
- C++
- Stars
- 6.7k
- Forks
- 1.8k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 75
Description
### Feature proposal
* Firebase Component: upload-symbols executable
We recently started receiving cryptic errors from the `upload-symbols` executable:
```
error: Failed uploading cSYMs due to error: Error Domain=com.google.firebase.crashlytics.FIRCLSCompoundOperation.error Code=4294967293 "(null)" UserInfo={com.google.firebase.crashlytics.FIRCLSCompoundOperation.error.user-info-key.underlying-errors=(
"Error Domain=com.crashlytics.mac.error-domain.submit-csym Code=0 \"Failed to submit cSYM for architecture arm64 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM\" UserInfo={NSLocalizedFailureReason=Failed to submit cSYM for architecture arm64 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM, NSUnderlyingError=0x7fbf19f2c3e0 {Error Domain=FIRCLSNetworkError Code=-6 \"(null)\" UserInfo={retryLimit=10, NSErrorFailingURLStringKey=https://firebasecrashlyticssymbols.googleapis.com/v1/project/-/app/our_app_id/upload/native/some_uuid}}}",
"Error Domain=com.crashlytics.mac.error-domain.submit-csym Code=0 \"Failed to submit cSYM for architecture armv7 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM\" UserInfo={NSLocalizedFailureReason=Failed to submit cSYM for architecture armv7 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM, NSUnderlyingError=0x7fbed9d04400 {Error Domain=FIRCLSNetworkError Code=-6 \"(null)\" UserInfo={retryLimit=10, NSErrorFailingURLStringKey=https://firebasecrashlyticssymbols.googleapis.com/v1/project/-/app/our_app_id/upload/native/some_uuid}}}"
)}
error: Could not complete submission of dSYM at /path/to/bundle.framework.dSYM: Error Domain=com.google.firebase.crashlytics.FIRCLSCompoundOperation.error Code=4294967293 "(null)" UserInfo={com.google.firebase.crashlytics.FIRCLSCompoundOperation.error.user-info-key.underlying-errors=(
"Error Domain=com.crashlytics.mac.error-domain.submit-csym Code=0 \"Failed to submit cSYM for architecture arm64 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM\" UserInfo={NSLocalizedFailureReason=Failed to submit cSYM for architecture arm64 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM, NSUnderlyingError=0x7fbf19f2c3e0 {Error Domain=FIRCLSNetworkError Code=-6 \"(null)\" UserInfo={retryLimit=10, NSErrorFailingURLStringKey=https://firebasecrashlyticssymbols.googleapis.com/v1/project/-/app/our_app_id/upload/native/some_uuid}}}",
"Error Domain=com.crashlytics.mac.error-domain.submit-csym Code=0 \"Failed to submit cSYM for architecture armv7 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM\" UserInfo={NSLocalizedFailureReason=Failed to submit cSYM for architecture armv7 with uuid some_uuid in dSYM: /path/to/bundle.framework.dSYM, NSUnderlyingError=0x7fbed9d04400 {Error Domain=FIRCLSNetworkError Code=-6 \"(null)\" UserInfo={retryLimit=10, NSErrorFailingURLStringKey=https://firebasecrashlyticssymbols.googleapis.com/v1/project/-/app/our_app_id/upload/native/some_uuid}}}"
)}
```
By looking at the requests with a HTTP debugging tool we found that the actual error looked like this:
```json
{"error":{"code":8,"message":"Upload quota exceeded."}}
```
It would be beneficial to output the exceeded quota error from the `upload-symbols` directly as the original error is somewhat vague.
Contributor guide
Research direction
Begin at the upload-symbols executable's upload error handling and trace the HTTP response that currently becomes the cryptic compound error. Confirm the executable surfaces the server message "Upload quota exceeded." when the quota response is returned.
Written by the indexing model from the issue text.
Assessment
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100