Flutter: Unhandled Exception: SocketException: Failed host lookup: 'api.example.com' (OS Error: No address associated with hostname, errno = 7)
The app could not resolve or reach the server: no internet, wrong host name, DNS failure, or missing network permission.
SocketException: Failed host lookupUnhandled Exception: SocketException: Failed host lookupSocketException: Connection refused (OS Error: Connection refused, errno = 111)SocketException: Connection failed (OS Error: Network is unreachable, errno = 101)SocketException: OS Error: No address associated with hostname Meaning
On Android release builds INTERNET permission must be declared in AndroidManifest.xml (debug builds include it automatically, which hides the bug). On emulators check connectivity; for localhost use 10.0.2.2 on the Android emulator. Always catch exceptions around HTTP calls.
Common causes
- No network or offline emulator
- Missing
<uses-permission android:name="android.permission.INTERNET"/>in release - Using
localhostfrom the Android emulator (use 10.0.2.2) - Typo in the host
- DNS/VPN/proxy problems
⚡ Quick fix
- Add the INTERNET permission to the main AndroidManifest
- Use
10.0.2.2or your LAN IP for local servers - Wrap calls in try/catch and show an offline message
Detailed fix by platform
Android
<uses-permission android:name="android.permission.INTERNET" />inandroid/app/src/main/AndroidManifest.xml
How to diagnose
- Release — Only in release builds?
- Host — Correct and resolvable?
- Emulator — localhost vs 10.0.2.2?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Android license status unknown / licenses not accepted flutter doctor: Android license status unknown. Run `flutter doctor --android-licenses` to accept the SDK licenses
- App Transport Security has blocked a cleartext HTTP load iOS: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection (NSURLErrorDomain -1022)
- BoxConstraints forces an infinite width Flutter: BoxConstraints forces an infinite width. These invalid constraints were provided to RenderStack's layout() function (TextField in a Row)
Most viewed in Flutter / Dart
- setState() called after dispose() Flutter: setState() called after dispose(): _MyState#1a2b3 (lifecycle state: defunct, not mounted)
- A RenderFlex overflowed Flutter: A RenderFlex overflowed by x pixels on the right/bottom
- Null check operator used on a null value Dart/Flutter: Null check operator used on a null value
Other ways to find it
Where this error sits
Origin: On your device. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026