CERTIFICATE_VERIFY_FAILED on connection #54
Comments
I temporarily solved my problem. But this is not the right solution. |
It seems like this has been happening to other people as well. You can send your project details to support@supabase.io to have the team take a look at your project! |
What information should I send? My project is big. Please tell me more precisely what to send. I repeat again, I did not change the project. The code that used to work does not work now. I think the problem is with the server and the certificate. |
@ali-1989 - including your project ref ( |
@ali-1989 - I suspect you're running into a dart/flutter-specific issue: dart-lang/io#83 Can you confirm the Android version involved? |
My android version is 7.0. This problem seems to be related to the dart language, not supabase package. |
It's slightly more complex; LetsEncrypt defaults to a config that special-cases Android <= 7, but the way that's done seems to break things for Dart (on at least Android <= 7). I imagine the market for not-Dart is bigger than Dart on Android <=7, so we'll likely keep things as-is. |
Can confirm this on Android 6.0.1 // Samsung Galaxy On7. I'm not sure this is a dart problem because I'm sure my code was working and now it isn't. I didn't change ANY SUPABASE-RELATED CODE, just some widgets to this new version. The Android version is also the same. I did not update flutter neither dart between the previous and the current versions. |
@inian Edited: I have a better grasp of the issue now. I can see that there's not much we can do at this point. |
@takenoto - it's caused due to the behaviour of Dart's cert verification routines, and a root CA cert expiring on the 30th of September, as explained on dart-lang/io#83 - the combination of the two results in breakage of code that was functional prior to the 30th. In terms of workarounds, the solution at dart-lang/io#83 (comment) is liekly your best bet, unless a better one gets put forth by the Dart community. |
I just finished reading this article and recommend reading it if you are still uncertain what the cause is. Great read. Basically there is really nothing we can do at this point to fix this, and this is the world we live in now, it sounds like. At least there is nothing we can do on the Supabase Dart SDK level. |
Thank you for clarifying |
This resolved the problem for me on Android Emulator - Nexus One - API 22 (Android 5.1 (Google APIs Image):
I tried the method of including the isrgrootx1.pem file in assets/ca/ in pubspec.yaml , then loading the contents using rootBundle.load() or PlatformAssetBundle().load(), but for some reason it was not working for me (probably due to a relative path issue). |
Hi.
I use this:
I see 'HandshakeException: Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: certificate has expired(handshake.cc:359))'
This code worked before and has been wrong without change.
what?
The text was updated successfully, but these errors were encountered: