We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

How to catch SocketException: Failed host lookup: 'tile.openstreetmap.org'

Hello,

We are adding SfMaps to our flutter app, and it is working correctly when the device is connected to the internet. However if the connection drops, or the device is not connected to the internet, the entire app will crash with the following error:

I/flutter (27599): [2023-04-17 21:19:03.096146 | Catcher | INFO] ---------- ERROR ----------

I/flutter (27599): [2023-04-17 21:19:03.096574 | Catcher | INFO] SocketException: Failed host lookup: 'tile.openstreetmap.org' (OS Error: No address associated with hostname, errno = 7)

I/flutter (27599): [2023-04-17 21:19:03.096931 | Catcher | INFO]

I/flutter (27599): [2023-04-17 21:19:03.097247 | Catcher | INFO] ------- STACK TRACE -------

I/flutter (27599): [2023-04-17 21:19:03.105136 | Catcher | INFO] #0 _NativeSocket.startConnect (dart:io-patch/socket_patch.dart:694:35)

I/flutter (27599): [2023-04-17 21:19:03.105571 | Catcher | INFO] #1 _RawSocket.startConnect (dart:io-patch/socket_patch.dart:1855:26)

I/flutter (27599): [2023-04-17 21:19:03.106447 | Catcher | INFO] #2 RawSocket.startConnect (dart:io-patch/socket_patch.dart:27:23)

I/flutter (27599): [2023-04-17 21:19:03.108223 | Catcher | INFO] #3 RawSecureSocket.startConnect (dart:io/secure_socket.dart:297:22)

I/flutter (27599): [2023-04-17 21:19:03.108354 | Catcher | INFO] #4 SecureSocket.startConnect (dart:io/secure_socket.dart:77:28)

I/flutter (27599): [2023-04-17 21:19:03.109755 | Catcher | INFO] #5 _ConnectionTarget.connect (dart:_http/http_impl.dart:2462:26)

I/flutter (27599): [2023-04-17 21:19:03.110117 | Catcher | INFO] #6 _HttpClient._getConnection.connect (dart:_http/http_impl.dart:2906:12)

I/flutter (27599): [2023-04-17 21:19:03.112125 | Catcher | INFO] #7 _HttpClient._getConnection (dart:_http/http_impl.dart:2911:12)

I/flutter (27599): [2023-04-17 21:19:03.113165 | Catcher | INFO] #8 _HttpClient._openUrl (dart:_http/http_impl.dart:2766:12)

I/flutter (27599): [2023-04-17 21:19:03.114461 | Catcher | INFO] #9 _HttpClient.getUrl (dart:_http/http_impl.dart:2609:48)

I/flutter (27599): [2023-04-17 21:19:03.114990 | Catcher | INFO] #10 NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:106:59)

I/flutter (27599): [2023-04-17 21:19:03.116160 | Catcher | INFO] #11 NetworkImage.loadBuffer (package:flutter/src/painting/_network_image_io.dart:67:14)

I/flutter (27599): [2023-04-17 21:19:03.117253 | Catcher | INFO] #12 ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:513:13)

I/flutter (27599): [2023-04-17 21:19:03.118122 | Catcher | INFO] #13 ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:384:22)

I/flutter (27599): [2023-04-17 21:19:03.118636 | Catcher | INFO] #14 ImageProvider.resolveStreamForKey (package:flutter/src/painting/image_provider.dart:511:81)

I/flutter (27599): [2023-04-17 21:19:03.120303 | Catcher | INFO] #15 ScrollAwareImageProvider.resolveStreamForKey (package:flutter/src/widgets/scroll_aware_image_provider.dart:106:19)

I/flutter (27599): [2023-04-17 21:19:03.121304 | Catcher | INFO] #16 ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:358:9)

I/flutter (27599): [2023-04-17 21:19:03.121583 | Catcher | INFO] #17 ImageProvider._createErrorHandlerAndKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:473:24)

I/flutter (27599): [2023-04-17 21:19:03.121759 | Catcher | INFO] #18 SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:41:39)

I/flutter (27599): [2023-04-17 21:19:03.121974 | Catcher | INFO] #19 ImageProvider._createErrorHandlerAndKey (package:flutter/src/painting/image_provider.dart:470:9)

I/flutter (27599): [2023-04-17 21:19:03.122128 | Catcher | INFO] #20 ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:355:5)

I/flutter (27599): [2023-04-17 21:19:03.123283 | Catcher | INFO] #21 _ImageState._resolveImage (package:flutter/src/widgets/image.dart:1119:16)

I/flutter (27599): [2023-04-17 21:19:03.123629 | Catcher | INFO] #22 _ImageState.didChangeDependencies (package:flutter/src/widgets/image.dart:1069:5)

I/flutter (27599): [2023-04-17 21:19:03.124132 | Catcher | INFO] #23 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5119:11)

I/flutter (27599): [2023-04-17 21:19:03.124504 | Catcher | INFO] #24 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)

I/flutter (27599): [2023-04-17 21:19:03.124755 | Catcher | INFO] #25 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)

I/flutter (27599): [2023-04-17 21:19:03.125048 | Catcher | INFO] #26 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)

I/flutter (27599): [2023-04-17 21:19:03.125758 | Catcher | INFO] #27 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)

I/flutter (27599): [2023-04-17 21:19:03.126048 | Catcher | INFO] #28 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)

I/flutter (27599): [2023-04-17 21:19:03.127262 | Catcher | INFO] #29 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)

I/flutter (27599): [2023-04-17 21:19:03.128511 | Catcher | INFO] #30 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)

I/flutter (27599): [2023-04-17 21:19:03.129325 | Catcher | INFO] #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)

I/flutter (27599): [2023-04-17 21:19:03.129742 | Catcher | INFO] #32 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6512:36)

I/flutter (27599): [2023-04-17 21:19:03.130013 | Catcher | INFO] #33 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)

I/flutter (27599): [2023-04-17 21:19:03.130479 | Catcher | INFO] #34 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:6041:32)

I/flutter (27599): [2023-04-17 21:19:03.131609 | Catcher | INFO] #35 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)

I/flutter (27599): [2023-04-17 21:19:03.131976 | Catcher | INFO] #36 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)

I/flutter (27599): [2023-04-17 21:19:03.132818 | Catcher | INFO] #37 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5981:32)

I/flutter (27599): [2023-04-17 21:19:03.133184 | Catcher | INFO] #38 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)

I/flutter (27599): [2023-04-17 21:19:03.133757 | Catcher | INFO] #39 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)

I/flutter (27599): [2023-04-17 21:19:03.134289 | Catcher | INFO] #40 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5981:32)

I/flutter (27599): [2023-04-17 21:19:03.134950 | Catcher | INFO] #41 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)

I/flutter (27599): [2023-04-17 21:19:03.135148 | Catcher | INFO] #42 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)

I/flutter (27599): [2023-04-17 21:19:03.135929 | Catcher | INFO] #43 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)

I/flutter (27599): [2023-04-17 21:19:03.136674 | Catcher | INFO] #44 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)

I/flutter (27599): [2023-04-17 21:19:03.137120 | Catcher | INFO] #45 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)

I/flutter (27599): [2023-04-17 21:19:03.137678 | Catcher | INFO] #46 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)

I/flutter (27599): [2023-04-17 21:19:03.137938 | Catcher | INFO] #47 _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:135:18)

I/flutter (27599): [2023-04-17 21:19:03.138227 | Catcher | INFO] #48 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2682:19)

I/flutter (27599): [2023-04-17 21:19:03.139753 | Catcher | INFO] #49 _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:153:12)

I/flutter (27599): [2023-04-17 21:19:03.140471 | Catcher | INFO] #50 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2300:59)

I/flutter (27599): [2023-04-17 21:19:03.140941 | Catcher | INFO] #51 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1056:15)

I/flutter (27599): [2023-04-17 21:19:03.141496 | Catcher | INFO] #52 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2300:14)

I/flutter (27599): [2023-04-17 21:19:03.141852 | Catcher | INFO] #53 RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:228:7)

I/flutter (27599): [2023-04-17 21:19:03.142193 | Catcher | INFO] #54 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:313:5)

I/flutter (27599): [2023-04-17 21:19:03.142413 | Catcher | INFO] #55 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.142695 | Catcher | INFO] #56 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.142925 | Catcher | INFO] #57 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)

I/flutter (27599): [2023-04-17 21:19:03.143736 | Catcher | INFO] #58 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)

I/flutter (27599): [2023-04-17 21:19:03.144074 | Catcher | INFO] #59 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)

I/flutter (27599): [2023-04-17 21:19:03.144551 | Catcher | INFO] #60 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.144713 | Catcher | INFO] #61 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.145425 | Catcher | INFO] #62 _RenderMaps.performLayout (package:syncfusion_flutter_maps/maps.dart:356:14)

I/flutter (27599): [2023-04-17 21:19:03.145761 | Catcher | INFO] #63 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.146070 | Catcher | INFO] #64 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.146758 | Catcher | INFO] #65 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:297:14)

I/flutter (27599): [2023-04-17 21:19:03.147355 | Catcher | INFO] #66 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.147583 | Catcher | INFO] #67 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.148391 | Catcher | INFO] #68 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)

I/flutter (27599): [2023-04-17 21:19:03.148812 | Catcher | INFO] #69 RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:836:43)

I/flutter (27599): [2023-04-17 21:19:03.149466 | Catcher | INFO] #70 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:938:32)

I/flutter (27599): [2023-04-17 21:19:03.149787 | Catcher | INFO] #71 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.149996 | Catcher | INFO] #72 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.150775 | Catcher | INFO] #73 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)

I/flutter (27599): [2023-04-17 21:19:03.151015 | Catcher | INFO] #74 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)

I/flutter (27599): [2023-04-17 21:19:03.151492 | Catcher | INFO] #75 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)

I/flutter (27599): [2023-04-17 21:19:03.152178 | Catcher | INFO] #76 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.152459 | Catcher | INFO] #77 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.152601 | Catcher | INFO] #78 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:297:14)

I/flutter (27599): [2023-04-17 21:19:03.152742 | Catcher | INFO] #79 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.152876 | Catcher | INFO] #80 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.153048 | Catcher | INFO] #81 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:315:14)

I/flutter (27599): [2023-04-17 21:19:03.154136 | Catcher | INFO] #82 RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)

I/flutter (27599): [2023-04-17 21:19:03.154328 | Catcher | INFO] #83 RenderBox.layout (package:flutter/src/rendering/box.dart:2430:11)

I/flutter (27599): [2023-04-17 21:19:03.154954 | Catcher | INFO] #84 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)

I/flutter (27599): [2023-04-17 21:19:03.155355 | Catcher | INFO] #85 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1080:7)

I/flutter (27599): [2023-04-17 21:19:03.155530 | Catcher | INFO] #86 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)

I/flutter (27599): [2023-04-17 21:19:03.156322 | Catcher | INFO] #87 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:410:14)

I/flutter (27599): [2023-04-17 21:19:03.156508 | Catcher | INFO] #88 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2027:7)

I/flutter (27599): [2023-04-17 21:19:03.156797 | Catcher | INFO] #89 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1020:18)

I/flutter (27599): [2023-04-17 21:19:03.156968 | Catcher | INFO] #90 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:516:19)

I/flutter (27599): [2023-04-17 21:19:03.157117 | Catcher | INFO] #91 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:865:13)

I/flutter (27599): [2023-04-17 21:19:03.157699 | Catcher | INFO] #92 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:381:5)

I/flutter (27599): [2023-04-17 21:19:03.158023 | Catcher | INFO] #93 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)

I/flutter (27599): [2023-04-17 21:19:03.158266 | Catcher | INFO] #94 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1218:9)

I/flutter (27599): [2023-04-17 21:19:03.158544 | Catcher | INFO] #95 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1076:5)

I/flutter (27599): [2023-04-17 21:19:03.159434 | Catcher | INFO] #96 _rootRun (dart:async/zone.dart:1398:13)

I/flutter (27599): [2023-04-17 21:19:03.159673 | Catcher | INFO] #97 _CustomZone.run (dart:async/zone.dart:1300:19)

I/flutter (27599): [2023-04-17 21:19:03.159891 | Catcher | INFO] #98 _CustomZone.runGuarded (dart:async/zone.dart:1208:7)

I/flutter (27599): [2023-04-17 21:19:03.160623 | Catcher | INFO] #99 _invoke (dart:ui/hooks.dart:147:10)

I/flutter (27599): [2023-04-17 21:19:03.160985 | Catcher | INFO] #100 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:338:5)

I/flutter (27599): [2023-04-17 21:19:03.162008 | Catcher | INFO] #101 _drawFrame (dart:ui/hooks.dart:112:31)

I/flutter (27599): [2023-04-17 21:19:03.162403 | Catcher | INFO]

I/flutter (27599): [2023-04-17 21:19:03.163260 | Catcher | INFO] ======================================================================

I/flutter (27599): [2023-04-17 21:19:03.172582 | Catcher | INFO] Report result: true


We have tried catching this error, with no success. How can we catch this error? Then either ignore or show a warning message.

Our code is as follows, which closely follows the sample code:

SfMaps(
layers: [
MapTileLayer(
urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
zoomPanBehavior: _zoomPanBehavior,
onWillZoom: (MapZoomDetails detail) {
...
},
controller:
_controller,
markerBuilder: (BuildContext context, int index) {
return MapMarker(
...

),
);
},
sublayers: [
MapShapeSublayer(
source:
_shapeData,
color:
_shapeColor,
strokeColor:
_shapeStroke
),
],
),
],
);
}

Thanks!


3 Replies

LP Lokesh Palani Syncfusion Team April 18, 2023 01:31 PM UTC

Hi Damian,


We would like to let you know that currently, we don’t have support to load tiles from local directory. We have already logged a feature request for it in our feedback portal. We will prioritize the features of every release based on demand and priority. So, this feature will be available in any of our upcoming releases. You can also track the status of the feature with the feedback below.


Feedback, https://www.syncfusion.com/feedback/25542/provide-an-option-to-load-tiles-from-local-directory


Regards,

Lokesh.



DA Damian April 19, 2023 01:14 AM UTC

Hi Lokesh,

Thanks for your message.

I'm not interested in "loading tiles from a local directory". That is not important.

What is important is the SfMaps does not crash my app by throwing a SocketException.

Please carefully re-read my original message: How can we CATCH and IGNORE this exception?

Wrapping the SfMaps widget in Try/Catch does not catch this network exception.

And it seems SfMaps does not have an "onError" function, which almost all other network modules contain.

For example, Firebase has the following option to catch network exceptions:

await FirebaseFirestore.instance.collection(...).snapshots().listen((documentSnapshot) {
...
}, onError: (e) {
...
});

It seems inconceivable that SfMaps requires a stable internet connection or will crash your app.

Surely there is a way to catch and ignore network exceptions generated by SfMaps?



LP Lokesh Palani Syncfusion Team April 19, 2023 01:38 PM UTC

Hi Damian,


We would like to let you know that currently, we don’t have support to handle the exception raising while loading the maps at offline. However, we have considered your requirement as a new feature and logged a feature request for it in our feedback portal.


We will prioritize the features of every release based on demand and priority. So, this feature will be available in any of our upcoming releases. You can also track the status of the feature with the feedback below.


Feedback,  https://www.syncfusion.com/feedback/43000/provide-a-callback-to-handle-the-exception-while-loading-the-maps-in-offline



Regards,

Lokesh.


Loader.
Live Chat Icon For mobile
Up arrow icon