question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Multiple errors in production app

See original GitHub issue

Plugin Version

google_mobile_ads: ^2.0.1

Steps to Reproduce

My live app reports some errors logs from crashlytics so i have no way to reproduce them locally everything works fine in debug but not in release.

I am sorry for how this issue looks like, it’s just very long to make an issue for all of them as they are all not reproductible in debug mode in my case.

Expected results:

Not seeing so many errors in my crashlytics dashboard.

Actual results:

Here is a preview of all the errors i am getting.

Capture d’écran 2022-09-10 à 20 04 58

I will go in details in the Logs section. Note : for all the below logs, i have put the occurrence for each platform, of course the logs are slightly different from iOS and Android but they are close enough for me to gather them.

Besides i don’t know why some of the iOS errors are written in French while Android is all in English.

Logs

Networking

Android : 77 times iOS : 36 times

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Vwa(code: 2, domain: com.google.android.gms.ads, message: Network error., responseInfo: Twa(responseId: null, mediationAdapterClassName: , adapterResponses: [])). Error thrown Reason : Network error. and code : 2.

Android : 66 times iOS : 0 times

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Vwa(code: 0, domain: com.google.android.gms.ads, message: Error while connecting to ad server: Unable to resolve host "googleads.g.doubleclick.net": No address associated with hostname, responseInfo: Twa(responseId: null, mediationAdapterClassName: , adapterResponses: [])). Error thrown Reason : Error while connecting to ad server: Unable to resolve host "googleads.g.doubleclick.net": No address associated with hostname and code : 0.

Android : 3 times iOS : 0 times

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Vwa(code: 0, domain: com.google.android.gms.ads, message: Error while connecting to ad server: unexpected end of stream on com.android.okhttp.Address@acefc12c, responseInfo: Twa(responseId: null, mediationAdapterClassName: , adapterResponses: [])). Error thrown Reason : Error while connecting to ad server: unexpected end of stream on com.android.okhttp.Address@acefc12c and code : 0.

Android : 3 times iOS : 6 times

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Vwa(code: 0, domain: com.google.android.gms.ads, message: Error while connecting to ad server: Read error: ssl=0x7370df7208: Failure in SSL library, usually a protocol error
error:100000d7:SSL routines:OPENSSL_internal:SSL_HANDSHAKE_FAILURE (third_party/openssl/boringssl/src/ssl/ssl_lib.cc:971 0x753bff341c:0x00000000), responseInfo: Twa(responseId: null, mediationAdapterClassName: , adapterResponses: [])). Error thrown Reason : Error while connecting to ad server: Read error: ssl=0x7370df7208: Failure in SSL library, usually a protocol error
error:100000d7:SSL routines:OPENSSL_internal:SSL_HANDSHAKE_FAILURE (third_party/openssl/boringssl/src/ssl/ssl_lib.cc:971 0x753bff341c:0x00000000) and code : 0.

Code

Android : 127 times iOS : 0 times

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Vwa(code: 0, domain: com.google.android.gms.ads, message: Unable to obtain a JavascriptEngine., responseInfo: Twa(responseId: null, mediationAdapterClassName: , adapterResponses: [])). Error thrown Reason : Unable to obtain a JavascriptEngine. and code : 0.

Android : 54 times iOS : 0 times

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Vwa(code: 3, domain: com.google.android.gms.ads, message: No ad config., responseInfo: Twa(responseId: null, mediationAdapterClassName: , adapterResponses: [])). Error thrown Reason : No ad config. and code : 3.

Android : 0 times iOS : 37 times

LoadAdError(code: 9, domain: com.google.admob, message: Request Error: No ad to show from all configured ad networks., responseInfo: ResponseInfo(responseId: null, mediationAdapterClassName: null, adapterResponses: []))

Android : 6 times iOS : 0 times

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Vwa(code: 0, domain: com.google.android.gms.ads, message: Internal error., responseInfo: Twa(responseId: CIu4hpzg-_kCFYSEhQod3IEIFQ, mediationAdapterClassName: , adapterResponses: [Uwa(adapterClassName: com.google.ads.mediation.admob.AdMobAdapter, latencyMillis: 60001), description: {
  "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
  "Latency": 60001,
  "Credentials": {},
  "Ad Error": {
    "Code": 0,
    "Message": "Internal error.",
    "Domain": "com.google.android.gms.ads",
    "Cause": "null"
  }
}, adUnitMapping: {}, adError: Swa(code: 0, domain: com.google.android.gms.ads, message: Internal error.))])). Error thrown Reason : Internal error. and code : 0.

Flutter doctor

[✓] Flutter (Channel stable, 3.3.1, on macOS 12.5.1 21G83 darwin-x64, locale fr-FR)
    • Flutter version 3.3.1 on channel stable at /Users/foxtom/Desktop/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4f9d92fbbd (4 days ago), 2022-09-06 17:54:53 -0700
    • Engine revision 3efdf03e73
    • Dart version 2.18.0
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/foxtom/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13F100
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.71.0)
    • VS Code at /Users/foxtom/Desktop/Visual Studio Code.app/Contents
    • Flutter extension version 3.46.0

[✓] Connected device (4 available)
    • moto g 8 power (mobile) • 172.16.1.195:5555         • android-arm64  • Android 11 (API 30)
    • Now You See Me (mobile) • 00008020-001204401E78002E • ios            • iOS 15.6.1 19G82
    • macOS (desktop)         • macos                     • darwin-x64     • macOS 12.5.1 21G83 darwin-x64
    • Chrome (web)            • chrome                    • web-javascript • Google Chrome 105.0.5195.102

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Issue Analytics

  • State:closed
  • Created a year ago
  • Reactions:1
  • Comments:6

github_iconTop GitHub Comments

1reaction
huycozycommented, Sep 16, 2022

Do you know how to whitelist AdMob URLs from my flutter app ?

@Tom3652 I’m also not sure about this. I guess he used pi-hole DNS while testing the project locally (not from an end-user device) @sezaru Could you please share what you have completed as confirmed in https://github.com/googleads/googleads-mobile-flutter/issues/149#issuecomment-814525003?

I am not using a specific DNS or something as mentioned either as it’s simply users around the world using my live app 😕 but maybe they are on a wifi that is actually blocking requests somehow…

Maybe the end-user used a DNS similar to @sezaru’s or VPN as reported in https://github.com/googleads/googleads-mobile-flutter/issues/527#issuecomment-1064925394 that causes the ad to be blocked. You can follow up on #527 for further updates.

1reaction
huycozycommented, Sep 15, 2022

Hi @Tom3652, thanks for responding and having a deep investigation.

  • I also tried reproducing the issue when being in airplane mode and I got Internal error as below:
I/flutter (31107): BannerAd failedToLoad: LoadAdError(code: 0, domain: com.google.android.gms.ads, message: Internal error., responseInfo: ResponseInfo(responseId: null, mediationAdapterClassName: , adapterResponses: []))
I/flutter (31107): NativeAd failedToLoad: LoadAdError(code: 0, domain: com.google.android.gms.ads, message: Internal error., responseInfo: ResponseInfo(responseId: null, mediationAdapterClassName: , adapterResponses: []))
I/flutter (31107): AdManagerBannerAd failedToLoad: LoadAdError(code: 0, domain: com.google.android.gms.ads, message: Internal error., responseInfo: ResponseInfo(responseId: null, mediationAdapterClassName: , adapterResponses: []))

If you can find out anything else, please provide it, it will be helpful for investigation. Thank you a lot!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Error monitoring and exception handling in large-scale ...
There's no way to deal with errors “live” or in production — the only solution is to detect them via error monitoring and...
Read more >
How do you catch and log errors of production web apps?
Depends on the application and the stack used to deploy it. That should determine what tools are available. Automated ones are nice and...
Read more >
Catch unusual exceptions on production code for web apps
Depending on the actual problem, the solution might be to trap that particular exception and take some action like redirecting to the Login...
Read more >
Read your production Angular Errors like a pro - Medium
We all want to build bug-free applications. We also know that it is not possible. ... Read your production Angular Errors like a...
Read more >
Alerting in Production: 6 Tools to Track Errors and Uptime
Detects all errors – caught and uncaught exceptions, HTTP errors, and log errors. ... If you want to track errors in mobile apps....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found