Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weird errors related to connecting to the Supabase instance in Flutter #147

Open
deliqs opened this issue Jul 15, 2022 · 21 comments · May be fixed by #1145
Open

Weird errors related to connecting to the Supabase instance in Flutter #147

deliqs opened this issue Jul 15, 2022 · 21 comments · May be fixed by #1145

Comments

@deliqs
Copy link

deliqs commented Jul 15, 2022

Hi,

I've been sent here by Div of the support team.

I'm experiencing frequent and weird errors related to connecitng to my Supabase instance from my Flutter app.

Some examples:

  • ClientException: Can't assign requested address
  • SocketException: Failed host lookup: 'DOMAIN.supabase.in' (OS Error: No address associated with hostname, errno = 7)
  • Connection closed before full header was received
  • SocketException: Connection timed out (OS Error: Connection timed out, errno = 110), address = DOMAIN.supabase.in, port = 39244
  • ClientException: Bad file descriptor
  • ClientException: Operation timed out

I'm completely in the dark about what, and have the feeling that it is not my code which, causes this. Anyone with some insights into this or that can help me?

@dshukertjr dshukertjr changed the title Weird errors related to connecting to the Supabase instance Weird errors related to connecting to the Supabase instance in Flutter Jul 16, 2022
@dshukertjr dshukertjr transferred this issue from supabase/supabase-dart Jul 16, 2022
@dshukertjr dshukertjr added the bug Something isn't working label Jul 16, 2022
@dshukertjr
Copy link
Member

Hi @deliqs,

Sorry to hear that you are having troubles with Supabase and Flutter. Thank you for listing the errors you see in the logs. This is very helpful.

I wonder if the problem is on the client side of things or Supabase side of things. Have you tried to create another Supabase project and connected to that one? If not, it might be worth trying.

If that also fails, could you try using a Supabase instance that I have? You can initialize Supabase with the following credentials to connect to one of the Supabase project that I have. Once you connect to it, please try to query something from the database and see if you get the same errors.

    url: 'https://nlbsnpoablmsxwkdbmer.supabase.co',
    anonKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYyOTE5ODEwMiwiZXhwIjoxOTQ0Nzc0MTAyfQ.XZWLzz95pyU9msumQNsZKNBXfyss-g214iTVAwyQLPA',

@bdlukaa
Copy link
Collaborator

bdlukaa commented Jul 16, 2022

In what platform are you in? If android, some permissions might be missing (such as internet and read/write permissions). iOS may request permissions as well

These errors are attached to HTTP issues, so the issue might be on your internet connection. Can you try to use another network or a VPN? By reading documentation about those errors, it looks like there's an issue with your DNS

I'm sure this is not an issue with the dart client.

Failed host lookup

Please ensure the supabase url is correct!

See also:

@deliqs
Copy link
Author

deliqs commented Jul 16, 2022

Hey there! I realized I wasn't clear in my first post.

The problems do occur sporadically for all users on my production instance. I have never experienced the mentioned problems on my dev instance and the problems also do not occur constantly for the same users. It seems to happen just sporadically for the users, but taken together it happens quite frequently.

The weird thing about it all is the errors are logged in the Supabase instance, so there seems to be a connection. Maybe it only fails sometimes on the first try.

@bdlukaa
Copy link
Collaborator

bdlukaa commented Jul 16, 2022

The related issues are likely to be flutter issues instead of supabase's. @dshukertjr iirc, we retry when an operation fails, right?

@dshukertjr
Copy link
Member

@bdlukaa Yeah, we do have a mechanism that will retry refreshing auth token upon failure.

@deliqs Thanks for the additional details. You mentioned that you were able to view the error logs on Supabase, right?

ClientException: Can't assign requested address
SocketException: Failed host lookup: 'DOMAIN.supabase.in' (OS Error: No address associated with hostname, errno = 7)
Connection closed before full header was received
SocketException: Connection timed out (OS Error: Connection timed out, errno = 110), address = DOMAIN.supabase.in, port = 39244
ClientException: Bad file descriptor
ClientException: Operation timed out

These are client side errors, correct? Will you be able to share some of the server side error logs as well? or are these the logs from Supabase dashboard?

@deliqs
Copy link
Author

deliqs commented Jul 18, 2022

@dshukertjr Yes, these are client side errors that arise in my Flutter app. I catch all errors that happen in the app and log those to a custom made table in my Supabase database.

I have taken a look into the API and Postgres logs that the Supabase dashboard provides but haven't found much worthwhile.
I did see some of these, though they do not coincide with the errors I mentioned above.

unsupported frontend protocol 65363.19778: server supports 3.0 to 3.0

@bdlukaa
Copy link
Collaborator

bdlukaa commented Jul 18, 2022

@deliqs can you log the stacktrace? it'll help us know from where, exactly, the error comes from! Right now, these errors are useless since it can have happened anywhere within the library

@deliqs
Copy link
Author

deliqs commented Jul 22, 2022

@bdlukaa Thanks for your patience. I'm currently logging the stacktrace as far as I can see, but somehow that ends up as null in the logs. I'll dive into that after this weekend to see if I can improve the error message and come back to you.

@bdlukaa bdlukaa removed the bug Something isn't working label Jul 22, 2022
@deliqs
Copy link
Author

deliqs commented Jul 25, 2022

I have not yet made the necessary changes, but I did receive a same kind of error that is not related to Supabase.

SocketException: Failed host lookup: 'lh3.googleusercontent.com' (OS Error: No address associated with hostname, errno = 7)

This makes me question if the mentioned problems are actually related to Supabase?

Logged stack trace:
#0 _NativeSocket.startConnect (dart:io-patch/socket_patch.dart:682) #1 _RawSocket.startConnect (dart:io-patch/socket_patch.dart:1817) #2 RawSocket.startConnect (dart:io-patch/socket_patch.dart:27) #3 RawSecureSocket.startConnect (dart:io/secure_socket.dart:299) #4 SecureSocket.startConnect (dart:io/secure_socket.dart:77) #5 _ConnectionTarget.connect (dart:_http/http_impl.dart:2449) #6 _HttpClient._getConnection.connect (dart:_http/http_impl.dart:2867) #7 _HttpClient._getConnection (dart:_http/http_impl.dart:2872) #8 _HttpClient._openUrl (dart:_http/http_impl.dart:2727) #9 _HttpClient.getUrl (dart:_http/http_impl.dart:2596) #10 NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:86) #11 NetworkImage.load (package:flutter/src/painting/_network_image_io.dart:49) #12 ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:488) #13 ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:379) #14 ImageProvider.resolveStreamForKey (package:flutter/src/painting/image_provider.dart:486) #15 ScrollAwareImageProvider.resolveStreamForKey (package:flutter/src/widgets/scroll_aware_image_provider.dart:106) #16 ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:333) #17 ImageProvider._createErrorHandlerAndKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:448) #18 SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:41) #19 ImageProvider._createErrorHandlerAndKey (package:flutter/src/painting/image_provider.dart:445) #20 ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:330) #21 _ImageState._resolveImage (package:flutter/src/widgets/image.dart:1119) #22 _ImageState.didChangeDependencies (package:flutter/src/widgets/image.dart:1071) #23 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4974) #24 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #25 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #26 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #27 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #28 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #29 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #30 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #31 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #32 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #33 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #34 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #35 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #36 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #37 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #38 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #39 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #40 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #41 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #42 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #43 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #44 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #45 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #46 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #48 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #49 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #50 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #51 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #52 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #53 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #54 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #55 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #56 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #57 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #58 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #59 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #60 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #61 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #62 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #63 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #65 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #66 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #67 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #69 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #70 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #71 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #72 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #73 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #74 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #75 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #76 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #77 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #78 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5825) #79 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6375) #80 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #81 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #82 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #83 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #84 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #85 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #86 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #87 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #88 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #89 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #90 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #91 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #92 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #93 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #94 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #95 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #96 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #97 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #98 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #99 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #100 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #101 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #102 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #103 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #104 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #105 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #106 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #107 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:108) #108 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #109 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #110 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #111 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #112 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #113 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #114 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #115 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #116 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #117 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #118 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #119 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #120 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #121 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #122 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #123 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #124 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #125 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #126 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #127 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #128 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #129 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #130 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #131 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #132 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #133 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #134 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #135 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #136 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #137 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #138 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #139 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #140 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #141 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #142 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #143 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #144 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #145 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #146 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #147 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #148 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #149 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #150 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #151 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #152 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #153 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #154 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5825) #155 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6375) #156 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #157 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #158 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #159 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #160 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #161 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #162 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #163 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #164 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #165 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #166 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #167 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5825) #168 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6375) #169 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #170 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #171 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #172 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #173 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #174 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #175 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #176 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #177 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #178 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #179 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #180 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #181 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #182 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #183 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #184 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #185 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #186 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #187 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #188 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #189 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #190 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #191 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #192 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #193 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #194 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #195 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #196 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #197 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #198 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #199 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #200 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #201 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #202 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #203 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #204 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #205 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #206 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #207 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #208 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #209 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #210 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #211 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #212 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #213 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #214 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #215 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #216 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #217 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #218 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #219 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #220 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #221 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #222 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #223 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #224 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #225 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #226 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #227 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #228 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #229 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #230 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #231 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #232 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #233 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #234 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #235 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #236 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #237 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #238 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #239 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #240 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #241 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #242 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #243 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #244 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #245 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #246 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #247 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #248 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #249 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #250 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #251 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #252 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #253 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #254 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #255 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #256 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #257 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #258 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #259 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #260 StatelessElement.update (package:flutter/src/widgets/framework.dart:4883) #261 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #262 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #263 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #264 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #265 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #266 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #267 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #268 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #269 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #270 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5825) #271 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6375) #272 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #273 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #274 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #275 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #276 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #277 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #278 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #279 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #280 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #281 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #282 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #283 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #284 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #285 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #286 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #287 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #288 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #289 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #290 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #291 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #292 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #293 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6222) #294 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #295 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #296 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #297 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #298 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #299 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #300 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #301 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #302 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #303 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #304 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #305 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #306 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #307 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #308 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #309 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #310 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #311 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #312 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #313 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #314 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #315 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #316 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #317 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #318 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #319 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #320 ProxyElement.update (package:flutter/src/widgets/framework.dart:5154) #321 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #322 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #323 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #324 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #325 StatefulElement.update (package:flutter/src/widgets/framework.dart:5009) #326 Element.updateChild (package:flutter/src/widgets/framework.dart:3530) #327 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4832) #328 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977) #329 Element.rebuild (package:flutter/src/widgets/framework.dart:4529) #330 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2659) #331 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:891) #332 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370) #333 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146) #334 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083) #335 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:997) #336 _rootRun (dart:async/zone.dart:1426) #337 _CustomZone.run (dart:async/zone.dart:1328) #338 _CustomZone.runGuarded (dart:async/zone.dart:1236) #339 _invoke (dart:ui/hooks.dart:151) #340 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308) #341 _drawFrame (dart:ui/hooks.dart:115)

@bdlukaa
Copy link
Collaborator

bdlukaa commented Jul 25, 2022

It's rather related to your user's Internet connection, not supabase

@dshukertjr
Copy link
Member

@deliqs As bdlukaa has mentioned, it seems like it might not be related to Supabase. Are you getting a lot of complaints from your users about these issues? or are you more just worried because you see these error logs on your custom error logging table?

@bdlukaa
Copy link
Collaborator

bdlukaa commented Jul 26, 2022

@dshukertjr for instance, we could also retry on connectivity change. https://pub.dev/packages/connectivity_plus

@dshukertjr
Copy link
Member

@bdlukaa Possibly. Were you thinking to intercept every http request while offline in that case?

@deliqs
Copy link
Author

deliqs commented Jul 26, 2022

@dshukertjr

@deliqs As bdlukaa has mentioned, it seems like it might not be related to Supabase. Are you getting a lot of complaints from your users about these issues? or are you more just worried because you see these error logs on your custom error logging table?

Luckily, I have built the app to be offline first. Synchronization with Supabase happens mostly on the background. So I have not got any complaints/bug reports from my users. It's indeed that I'm worried because of the errors that come in (the network problems cause errors in the synchronization).

@dshukertjr
Copy link
Member

dshukertjr commented Jul 26, 2022

@deliqs Nice. Yeah, it seems like this is an issue on Flutter side of things unfortunately. Hopefully you can implement retry logic to sync those updates to Supabase! I would like to close this issue, but if anything comes up in the future, please do not hesitate to open another issue!

@deliqs
Copy link
Author

deliqs commented Aug 5, 2022

@dshukertjr @bdlukaa Just for future references. I found my issue. I somehow missed the await before the Supabase.initialize(). I've added it and didn't see any of the mentioned issues again.

@dshukertjr
Copy link
Member

@deliqs Nice! So glad to hear that you were able to fix your issue 🎉

@DanMossa
Copy link
Collaborator

DanMossa commented Oct 29, 2023

I've been experiencing this issue for a while now but never had time to get around to it.

I'm awaiting initialization and the issue isn't solved.

I was reading into it and it seems like the cupertino_http client is better at handling http requests on iOS due to OS handling the closing and reopening the connection when the app is suspended.

dart-lang/http#197

@bdlukaa @dshukertjr

Might be worth using that when the client is iOS?

Update: I spoke too quickly. Gonna try setting the retryStorage parameter and see what happens

@Mykyta-Chernenko
Copy link

Mykyta-Chernenko commented May 30, 2024

I have the same issue as well, even though I call .init().
I have the same issue as the originally mentioned issue - a lot of network related errors thrown here and there.
Especially ClientException: Bad file descriptor

UPD
I have switched to use dio with retries as the http client. Seems work well locally with networks packet loss tests, but will need to check how it behaves with the real users.

import 'package:http/http.dart' as http;
import 'package:dio/dio.dart';

class DioAdapter extends http.BaseClient {
  final Dio dio;

  DioAdapter(this.dio);

  @override
  Future<http.StreamedResponse> send(http.BaseRequest request) async {
    final options = Options(
      method: request.method,
      headers: request.headers,
      responseType: ResponseType.stream,
    );

    final response = await dio.requestUri(
      request.url,
      data: request is http.Request ? request.body : null,
      options: options,
    );

    final contentLengthHeader = response.headers.value('content-length');
    final contentLength = contentLengthHeader != null
        ? int.tryParse(contentLengthHeader)
        : null;


    return http.StreamedResponse(
      response.data.stream,
      response.statusCode ?? 200,
      contentLength: contentLength,
      request: request,
      headers: response.headers.map.map((k, v) => MapEntry(k, v.join(','))),
      reasonPhrase: response.statusMessage,
    );
  }
}
....
final dio = Dio();

  dio.interceptors.add(RetryInterceptor(
    dio: dio,
    logPrint: debugPrint,
    retries: 5,
    retryDelays: const [
      Duration(seconds: 1),
      Duration(seconds: 2),
      Duration(seconds: 4),
      Duration(seconds: 8),
      Duration(seconds: 16),
    ],
  ));
    await Supabase.initialize(
      url: '**',
      anonKey: '**',
      authOptions: new FlutterAuthClientOptions(
        autoRefreshToken: true,
      ),
    httpClient: DioAdapter(dio),
  );
  
  

@michelemarchetto
Copy link

Is there any chance this error is investigated?

@DanMossa
Copy link
Collaborator

Looking at the thread from earlier, dart-lang/http#197, we should use cupertino_http on iOS.

@DanMossa DanMossa reopened this Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants