Phone is unable to scan the QR-Code using the app

Hi,

I reach out to you today because I’m stuck with this problem.

I’m a new Passbolt user and I try to set it up on my phone, it’s a Fairphone 4.

I’ve been able to start the “mobile transfert” on the browser, I can see the QR-Code, I started the “Scan QR codes” procedure on the mobile phone but then the app cannot scan the code.

The help text says “Aim the camera at the QR Code” but when I do nothing happen.

What I tried to do to solve the problem:

  1. Enable debug logs

There is only debug info about the device, etc.

Here is the full content:

Device: Fairphone FP4
Android 11 (30)
Passbolt 1.3.0-4
  1. Try to scan the QR-Code with another scanning app

Works! I could see the content of the QR-Code, some JSON encoded data.

  1. Try to generate another QR-Code with the same content

Since it seems like a scanning issue, I tried to put the content of the QR-Code created by Passbolt into a new one generated with different configurations (correction level, etc.) but without success, I couldn’t scan any of them.

  1. Try to follow the procedure with another phone

I could complete the procedure with another phone, everything went smoothly.

(But, of course, I would like to do it on my usual phone for obvious reasons.)

I’m out of ideas to keep debugging the problem, any help would be much appreciated!

Thank you!

Hi @gaetan08 Welcome to the forum!

I had this problem on my old phone… I found if I increased the size of the QR code on my browser via Ctrl + ‘+’ it was able to read it better. I figured at the time that the density of the code was more than the sensor resolution of the camera could handle, or something like that. Worth a try, at least.

Thank you for your help!

I did increase the size of the QR-Code but sadly that didn’t help to scan it :frowning:

@gaetan08 I’m not that familiar with Fairphone but QR Scan on Fairphone 4 - #15 by FairphoneHulk - Fairphone 4 - Fairphone Community Forum does it not have a native QR scanner in the camera module? If not, a workaround might be needed… like switching to a 3rd party scanner that somehow will trigger what the Passbolt app is waiting for.

Hi @gaetan08 ,

We have another FairPhone 4 user who has reported an issue about this on Github. He was finally able to use QRCode with an apk file he built himself with Android Studio, but not with another apk he downloaded elsewhere.

How did you installed passbolt mobile app on your FairPhone ?

Link to the Android Studio procedure: Passbolt app 1.3 crashes on /e/ on scanning QR Code · Issue #1 · passbolt/mobile-passbolt-android · GitHub

Let us know if you were able to build the passbolt apk and be able to use QRCode.

Best,

I’ll second this issue on a Pixel 6.

Thanks you for you help!

My original tests were done on the official version, downloaded from the Play Store (version 1.3.0-4, as per the debug log).

As you suggested I cloned the Github (master, 13b623) and built the app to see if that would solve the problem but I experimented the exact same behavior.
Note that, in the Github issue, the person reported crashes which never happened for me.

I’m wondering if the library used to do the QR scanning might not be the sharpest knife in the drawer.
Do you have an opinion on this ?

2 Likes

@gaetan08 No, but I know the devs will appreciate knowing the outcome so thanks for attempting and noting the results. Others will likely chime in with insights.

Hi @gaetan08 ,

We’re tryin gto get our hand on a fairphone 4, see if we can reproduce the issue. Also we’ll try to bump the library version since there is a new major version (16.1.1 → 17.0.2). The library is definitely one of the best and recommended, so we’re not sure what would be a better alternative.

@gaetan08 can you try to build with the bumped the version? One more line needs changing ( import com.google.mlkit.vision.barcode.Barcodeimport com.google.mlkit.vision.barcode.common.Barcode in the BarcodeScanModule.kt file) - Android Studio suggests it in the quickfix menu.

@pattonjo we’ve tried with pixel 5 and 6 phones and are not able to reproduce the issue. So maybe the issue is different and something to do with your instance (or your given phone). Can you try to create a test account on the cloud and see if the process works?

@remy I can confirm the latest Android app on Pixel 6 DOES work with a cloud based test account, just not on my CE install. I have the identical issue that @gaetan08 has stated with a different device.

CE Install 3.5.0
Device: Google Pixel 6
Android 12
Passbolt App 1.3.0-4

Hi @pattonjo

Can you share with us your logs from the mobile app as explained here: Passbolt Help | iOS / Android Mobile FAQ ?

Thanks and regards,

Device: Google Pixel 6
Android 12 (31)
Passbolt 1.3.0-4

2:08:27 PM javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.SSLUtils.toSSLHandshakeException(SSLUtils.java:363)
at com.android.org.conscrypt.ConscryptEngine.convertException(ConscryptEngine.java:1134)
at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1089)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:876)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:747)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:712)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:858)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:731)
at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:241)
at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:220)
at okhttp3.internal.connection.RealConnection.connectTls(SourceFile:367)
at okhttp3.internal.connection.RealConnection.establishProtocol(SourceFile:325)
at okhttp3.internal.connection.RealConnection.connect(SourceFile:197)
at okhttp3.internal.connection.ExchangeFinder.findConnection(SourceFile:249)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(SourceFile:108)
at okhttp3.internal.connection.ExchangeFinder.find(SourceFile:76)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(SourceFile:245)
at okhttp3.internal.connection.ConnectInterceptor.intercept(SourceFile:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at okhttp3.internal.cache.CacheInterceptor.intercept(SourceFile:96)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at okhttp3.internal.http.BridgeInterceptor.intercept(SourceFile:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(SourceFile:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at com.passbolt.mobile.android.core.networking.interceptor.CookiesInterceptor$AddCookiesInterceptor.intercept(SourceFile:57)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at com.passbolt.mobile.android.core.networking.interceptor.CookiesInterceptor$ReceivedCookiesInterceptor.intercept(SourceFile:38)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at com.passbolt.mobile.android.core.networking.interceptor.AuthInterceptor.intercept(SourceFile:22)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at com.passbolt.mobile.android.core.networking.interceptor.ChangeableBaseUrlInterceptor.intercept(SourceFile:40)
at okhttp3.internal.http.RealInterceptorChain.proceed(SourceFile:100)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(SourceFile:197)
at okhttp3.internal.connection.RealCall$AsyncCall.run(SourceFile:502)
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:920)
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:656)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:505)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:425)
at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:353)
at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:90)
at com.android.org.conscrypt.ConscryptEngineSocket$2.checkServerTrusted(ConscryptEngineSocket.java:163)
at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:255)
at com.android.org.conscrypt.ConscryptEngine.verifyCertificateChain(ConscryptEngine.java:1638)
at com.android.org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)
at com.android.org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:569)
at com.android.org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1095)
at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1079)
… 35 more

@pattonjo you are not able to connect the mobile app on your instance because your https setup is not well configured. You should have a look at this help page and check your instance with online tools if it is publicly accessible.

@gaetan08 can you share your mobile app logs too ?

Best,

Indeed. I wasn’t providing an Intermediate. All is well now. Thanks again!

Great :+1: enjoy your passbolt mobile app and don’t hesitate if you have further questions.

Best,

Hi @gaetan08 :wave:

We released yesterday 1.6.0 version for Android with a fix for your QRCode issue.

FYI,

Cheers,