apps-android-commons: Unable to login
Summary:
I am unable to login through the app, can login through a browser.
Error message says Chain validation failed
Steps to reproduce:
How can we reproduce the issue? What did you expect the app to do, and what did you see instead?
I ran the project on Android Studio. Then I opened the app and created an account, verified my email and tried to login, which failed.
System logs:
2020-01-11 14:24:27.816 8174-8174/fr.free.nrw.commons.beta D/LoginActivity: Login to start!
2020-01-11 14:24:27.918 8174-8320/fr.free.nrw.commons.beta D/OkHttp: --> GET https://commons.wikimedia.beta.wmflabs.org/w/api.php?format=json&formatversion=2&errorformat=plaintext&action=query&meta=tokens&type=login
2020-01-11 14:24:27.925 8174-8320/fr.free.nrw.commons.beta D/CookieManager: Domain:commons.wikimedia.beta.wmflabs.org
2020-01-11 14:24:28.841 8174-8320/fr.free.nrw.commons.beta D/OkHttp: <-- HTTP FAILED: javax.net.ssl.SSLHandshakeException: Chain validation failed
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: javax.net.ssl.SSLHandshakeException: Chain validation failed
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:229)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:351)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:310)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:178)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:236)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:109)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:77)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.Transmitter.newExchange$okhttp(Transmitter.kt:162)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:35)
2020-01-11 14:24:28.850 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:82)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:84)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:71)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at fr.free.nrw.commons.OkHttpConnectionFactory$CommonHeaderRequestInterceptor.intercept(OkHttpConnectionFactory.java:56)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at fr.free.nrw.commons.OkHttpConnectionFactory$UnsuccessfulResponseInterceptor.intercept(OkHttpConnectionFactory.java:62)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:215)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:184)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at okhttp3.RealCall$AsyncCall.run(RealCall.kt:136)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at java.lang.Thread.run(Thread.java:764)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: Caused by: java.security.cert.CertificateException: Chain validation failed
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:707)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:539)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:560)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:605)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:495)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:418)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:339)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:208)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:404)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:375)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:224)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: ... 32 more
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: Caused by: java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:135)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:222)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:140)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at java.security.cert.CertPathValidator.validate(CertPathValidator.java:301)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:703)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: ... 45 more
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: Caused by: java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.OCSPResponse.verify(OCSPResponse.java:619)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.checkOCSP(RevocationChecker.java:709)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:363)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:337)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: ... 50 more
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: Suppressed: java.security.cert.CertPathValidatorException: Could not determine revocation status
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.buildToNewKey(RevocationChecker.java:1092)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.verifyWithSeparateSigningKey(RevocationChecker.java:910)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:577)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:465)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:394)
2020-01-11 14:24:28.851 8174-8174/fr.free.nrw.commons.beta E/LoginActivity: ... 52 more
Device and Android version:
Redmi Note 5 Pro MIUI version 11 Android 9
Screen-shots:

About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 21 (11 by maintainers)
Commits related to this issue
- Fixes #3320 * Added SSL certificate for commons beta * Asked OKHTTP client to use SSLContext from beta certificate * Probable Fix of #3345 — committed to ashishkumar468/apps-android-commons by ashishkumar468 4 years ago
- Fixes #3320 (#3349) * Fixes #3320 * Added SSL certificate for commons beta * Asked OKHTTP client to use SSLContext from beta certificate * Probable Fix of #3345 * Use ConfigUtils to verify flav... — committed to commons-app/apps-android-commons by ashishkumar468 4 years ago
- Merge latest master (#6) * Versioning * Update changelog.md * Optimize imports (#3272) * Convert few model classes to kotlin (#3270) * Localisation updates from https://translatewiki.net.... — committed to maskaravivek/apps-android-commons by maskaravivek 4 years ago
Sure @misaochan I will look into it . đ
@sivaraam That makes sense. I opened both the beta and production instance on the web and realised that my account was not âdeletedâ but I had ended up creating two different accountsâone for each instance.
However, the problem persists. I can login to the beta version on the web, but using the same credentials I canât login to the beta Commons app. I still get the
Chain validation failederror on mobile.Sure @maskaravivek , I guess my PR solves both of them
This is because the username is registered with some other wiki (in this case en.wikipedia) and since the introduction of Unified login creating an account in one wiki with a username means the username is also reserved in other wikis. If you had keenly noticed, the error message you got when trying to reset the password clearly stated this âThe username Anmol is not registered on this wiki, but you can reset its password on a wiki where it is.â (emphasis mine).