Android приложение вылетает из-за проблемы поиска DNS - PullRequest
0 голосов
/ 13 июля 2020

С момента моего последнего обновления я получаю много отказов приложений от Firebase Analytics.

Fatal Exception: com.apollographql.apollo.exception.ApolloNetworkException: Failed to execute http call
       at com.apollographql.apollo.internal.interceptor.ApolloServerInterceptor$1$1.onFailure(ApolloServerInterceptor.java:101)
       at okhttp3.RealCall$AsyncCall.run(RealCall.kt:146)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:919)
Caused by java.net.UnknownHostException: Unable to resolve host "xxx.herokuapp.com": No address associated with hostname
       at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:124)
       at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
       at java.net.InetAddress.getAllByName(InetAddress.java:1152)
       at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
       at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:160)
       at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:125)
       at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
       at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:201)
       at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:111)
       at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:79)
       at okhttp3.internal.connection.Transmitter.newExchange$okhttp(Transmitter.kt:163)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:35)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
       at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:82)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
       at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:84)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:71)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
       at at.denovo.daheimapp.network.WebService$client$1$$special$$inlined$-addInterceptor$1.intercept(Interceptor.kt:86)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
       at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:194)
       at okhttp3.RealCall$AsyncCall.run(RealCall.kt:138)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:919)

Я думаю, это может быть связано с IPV6, поскольку Heroku его не поддерживает. Есть ли способ заставить приложение использовать ipv4? Или эта проблема связана с пользователем? Может быть, пользователи применяют ipv6 DNS?

Приложение отлично работает на Android, и API работает, так что проблем нет

...