firebase-tools icon indicating copy to clipboard operation
firebase-tools copied to clipboard

Failed to upload symbols

Open zxt385189207 opened this issue 2 years ago • 6 comments

[REQUIRED] Environment info

firebase-tools:firebase-tools

Platform:Windows

[REQUIRED] Test case

  1. i set the HTTPS_PROXY or HTTP_PROXY value in your environment to the URL of your proxy
  2. Firebase CLI command:firebase crashlytics : symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
  3. Error: Failed to upload symbols

output : com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.conn.HttpHostConnectException: Connect to firebasecrashlyticssymbols.googleapis.com:443 [firebasecrashlyticssymbols.googleapis.com/172.217.163.42] failed: Connection timed out: connect

I used a VPN proxy and set http_proxy, but no work.

[REQUIRED] Steps to reproduce

It can be replicated in China,

[REQUIRED] Expected behavior

generate a Crashlytics-compatible symbol file and upload it to Firebase servers

[REQUIRED] Actual behavior

[CRASHLYTICS LOG DEBUG] PUT headers: [CRASHLYTICS LOG DEBUG] User-Agent = crashlytics-buildtools/2.8.0 [CRASHLYTICS LOG DEBUG] X-CRASHLYTICS-API-CLIENT-TYPE = crashlytics-buildtools [CRASHLYTICS LOG DEBUG] X-CRASHLYTICS-API-CLIENT-VERSION = 2.8.0 com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.conn.HttpHostConnectException: Connect to firebasecrashlyticssymbols.googleapis.com:443 [firebasecrashlyticssymbols.googleapis.com/172.217.163.42] failed: Connection timed out: connect at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:394) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) at com.google.firebase.crashlytics.buildtools.api.RestfulWebApi.sendFile(RestfulWebApi.java:100) at com.google.firebase.crashlytics.buildtools.api.RestfulWebApi.uploadFile(RestfulWebApi.java:119) at com.google.firebase.crashlytics.buildtools.api.FirebaseSymbolFileService.uploadNativeSymbolFile(FirebaseSymbolFileService.java:35) at com.google.firebase.crashlytics.buildtools.Buildtools.uploadNativeSymbolFiles(Buildtools.java:266) at com.google.firebase.crashlytics.buildtools.CommandLineHelper.executeUploadSymbols(CommandLineHelper.java:160) at com.google.firebase.crashlytics.buildtools.CommandLineHelper.doMain(CommandLineHelper.java:107) at com.google.firebase.crashlytics.buildtools.CommandLineHelper.main(CommandLineHelper.java:61) at com.google.firebase.crashlytics.buildtools.Buildtools.main(Buildtools.java:113) Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:339) at com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ... 18 more

Error: Failed to upload symbols

zxt385189207 avatar Jun 01 '22 08:06 zxt385189207

macos set httpproxy is working

[CRASHLYTICS LOG DEBUG] Crashlytics using custom proxy settings: 127.0.0.1:7890
[CRASHLYTICS LOG DEBUG] PUT headers:

window set httpproxy dont work

[CRASHLYTICS LOG DEBUG] Crashlytics Buildtools initialized.
[CRASHLYTICS LOG DEBUG] Uploading native symbol files from directory: ...
[CRASHLYTICS LOG DEBUG] PUT file: .... to URL: ...
[CRASHLYTICS LOG DEBUG] PUT headers:
[CRASHLYTICS LOG DEBUG]         User-Agent = crashlytics-buildtools/2.8.0

Is it a tool bug?

zxt385189207 avatar Jun 04 '22 03:06 zxt385189207

Hi, thanks for reaching out! This sounds like a network issue and please make sure you can reach the Firebase servers from your network.

yuchenshi avatar Jun 15 '22 01:06 yuchenshi

@yuchenshi The network is not accessible, so I need to set up the proxy, but I set up the proxy on Windows does not work with Firebase-Tools, but it does work on Macos

zxt385189207 avatar Jun 15 '22 01:06 zxt385189207

Got it. For setup-specific questions and network issues, please reach out to Firebase Support

yuchenshi avatar Jun 15 '22 01:06 yuchenshi

thanks

zxt385189207 avatar Jun 15 '22 01:06 zxt385189207

It appears the proxy environment variable in the public documentation is not what Crashlytics expects. Try setting https.proxyHost and https.proxyPort (or http.proxyHost and http.proxyPort), in addition to the environment variables you are already using.

Let us know if that works. If so, we'll update a future version of the Firebase CLI to support the docs as written, once this is confirmed as the root of the issue.

mrichards avatar Aug 15 '22 20:08 mrichards

Quick update: https.proxyHost, etc are Java runtime properties that are checked by Crashlytics, not environment variables. We've implemented a check for the documented environment variables and will be shipping an update to the Firebase CLI soon that includes this fix.

mrichards avatar Sep 02 '22 15:09 mrichards

ok~

zxt385189207 avatar Sep 02 '22 15:09 zxt385189207

The fix was released in Firebase CLI 11.10.0, released last week. (The release notes aren't on the main Firebase page for some reason, but you can see them here.)

Please re-open if you still see this issue after updating your Firebase CLI distribution.

mrichards avatar Sep 28 '22 20:09 mrichards