WLAN shows "Low quality" and switches to/uses Cellular Data, instead of disconnecting or Roaming to better AP

Model: FP5
Android version: 15
Build number: FP5.VT2P.C.089.20260311

Issue/Unexpected behaviour:
Since the update to the current build (about 3 weeks ago) my FP5 often begins using Mobile data, while keeping an active but then unused WLAN connection with the Status “Low quality” (“Niedrige Qualität” if set to german).
If I disable Mobile data the WLAN connection is stable and works fine, as soon as I then enable Mobile data again, the issue imidiately occurs again.
The FP5 has never recoverd from this bad state, without me moving it to anoter location or disabling WLAN waiting several seconds and then reenabling it or switching to another SSID.
Other Android devices at the exact same location have a stable and working WLAN connection.

Expected behaviour:
If a “low quality” WLAN connection is detected, I would expect my phone to either roam to a different AP (if available) or to cleanly disconnect from (and eventually reconnect to) WLAN and begin using Mobile data.

Current Settings:
System > Developer options > Mobile data always active = disabled (it was never enabled, but some posts suggested this would cause more aggressive network switching so I include it)
System > Developer options > Enable Wi-Fi verbose logging = enabled (for better insight/debugging)

Locations:
At first I thought the issue was my Home WLAN Setup, because I currently run multiple old 802.11ac (Wi-Fi 5) APs with openWRT and am replacing them with 802.11be (Wi-Fi 7) Unify APs as they fail, but up until now it was stable and Roaming somewhat worked and the low quality issue also occured at other locations by now.

Screenshot of Settings > Network and Internet > Internet durring an occurence of the Issue:

Several extracts from WifiScoreReport from adb shell dumpsys wifi:

time             , session, netid, rssi, filtered_rssi, rssi_threshold, freq, txLinkSpeed, rxLinkSpeed, txTput, rxTput, bcnCnt, tx_good, tx_retry, tx_bad, rx_pps , nudrq, nuds, internalScorerType, internalScore, internalAdjustedScore, internalIsUsable, externalScore
4-21 9:59:40.459 ,      25,   223, -82 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5606,    0.48,     0.02,   0.00,    0.97,   118,   79, ML                ,            81,                   100, true            , -1
4-21 9:59:43.487 ,      25,   223, -82 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5632,    0.17,     0.01,   0.00,    0.35,   119,   80, ML                ,            81,                   100, true            , -1
4-21 9:59:46.516 ,      25,   223, -81 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5642,    0.48,     0.00,   0.00,    0.55,   120,   80, ML                ,            76,                   100, true            , -1
4-21 9:59:49.531 ,      25,   223, -81 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5646,    0.17,     0.00,   0.00,    0.20,   121,   81, ML                ,            80,                   100, true            , -1
4-21 9:59:52.547 ,      25,   223, -81 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5648,    0.06,     0.00,   0.00,    0.07,   122,   81, ML                ,            80,                   100, true            , -1
4-21 9:59:55.569 ,      25,   223, -79 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5669,    2.12,     0.42,   0.00,    2.76,   123,   82, ML                ,            75,                   100, true            , -1
4-21 9:59:58.610 ,      25,   223, -80 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5695,    1.19,     0.15,   0.00,    1.42,   124,   82, ML                ,            75,                     0, false           , -1
4-21 10:0:1.632  ,      25,   223, -79 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5724,    0.43,     0.05,   0.00,    0.51,   125,   83, ML                ,            78,                     0, false           , -1
4-21 10:0:4.666  ,      25,   223, -83 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5741,    0.93,     0.02,   0.00,    0.47,   126,   83, ML                ,            69,                     0, false           , -1
4-21 10:0:7.687  ,      25,   223, -83 ,           0.0, -80.0         , 2462,          17,           1,      5,     14,   5746,    0.34,     0.00,   0.00,    0.17,   127,   84, ML                ,            70,                     0, false           , -1
4-21 10:0:10.712 ,      25,   223, -79 ,           0.0, -80.0         , 2462,          17,          34,      5,     14,   5749,    1.38,     0.63,   0.00,    1.53,   127,   84, ML                ,            72,                     0, false           , -1
time             , session, netid, rssi, filtered_rssi, rssi_threshold, freq, txLinkSpeed, rxLinkSpeed, txTput, rxTput, bcnCnt, tx_good, tx_retry, tx_bad, rx_pps , nudrq, nuds, internalScorerType, internalScore, internalAdjustedScore, internalIsUsable, externalScore
4-20 12:10:13.816,      24,   121, -53 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6764,    4.88,     3.19,   0.00,    5.62,    14,   31, ML                ,            93,                   100, true            , -1
4-20 12:10:16.850,      24,   121, -53 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6794,    2.28,     0.87,   0.00,    2.96,    14,   31, ML                ,            93,                   100, true            , -1
4-20 12:10:19.871,      24,   121, -53 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6824,    1.46,     0.32,   0.00,    2.55,    14,   31, ML                ,            93,                   100, true            , -1
4-20 12:10:23.393,      24,   121, -52 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6856,    0.95,     0.32,   0.00,    1.77,    14,   31, ML                ,            93,                   100, true            , -1
4-20 12:10:26.415,      24,   121, -52 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6886,    0.49,     2.06,   0.00,    1.13,    15,   32, ML                ,            28,                   100, true            , -1
4-20 12:10:29.446,      24,   121, -50 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6915,    1.43,     0.75,   0.00,    2.51,    15,   32, ML                ,            86,                     0, false           , -1
4-20 12:10:32.472,      24,   121, -52 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6943,    7.44,     2.37,   0.00,    7.63,    15,   32, ML                ,            82,                     0, false           , -1
4-20 12:10:35.505,      24,   121, -51 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   6971,    3.34,     0.86,   0.00,    4.87,    15,   32, ML                ,            88,                     0, false           , -1
4-20 12:10:38.533,      24,   121, -53 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   7001,    1.21,     0.31,   0.00,    2.82,    15,   32, ML                ,            85,                     0, false           , -1
4-20 12:10:41.561,      24,   121, -53 ,           0.0, -80.0         , 5220,         516,         541,     12,    131,   7030,    0.86,     0.11,   0.00,    2.28,    15,   32, ML                ,            93,                     0, false           , -1
4-20 12:10:44.592,      24,   121, -55 ,           0.0, -80.0         , 5220,         516,         325,     12,    131,   7059,    0.31,     0.04,   0.00,    1.25,    15,   32, ML                ,            92,                     0, false           , -1


Did/Does anyone else also have this problem?

Having the exact same issue with the same phone, android version and build number.
Also it only appeared with the newest update for me

Update:

Disabling

Settings > Developer options > Wi-Fi scan throttling

seems to somewhat mitigate it. My phone still switches to mobile data and shows ‘Low quality’ sometimes, but it recovers within a minute and begins to use WLAN again, if a strong enough one is available.

The downside of this mitigation is the likely higher battery consumption.

Sweet, I’ll test it out over the next few days and see what the changes are!

I am experiencing the same issue on my FP5 with current Android 15 build.

Disabling
Settings > Developer options > Wi-Fi scan throttling
did not improve the situation for me.

I opened a ticket at Fairphone Support.

Experiencing this issue as well and opened a ticket - response yet to come. Only happens in my WiFi at home, but that’s making it even more annoying.

Started with the FP5.VT2P.C.089 update and persists with FP5.VT2Q.C.092

Wifi has been kinda less seamless and reliable for me, since I got a tri-band 6E capable router.

See old post since it’s still relevant and the issue persists.

A new behavior that has reared it’s head in the past ~3 months, is being connected to wifi, yet the phone uses mobile data. When you go to wifi settings, you find this message.

Low quality wifi. I can assure everyone, the signal strength icon is accurate, and the signal is very much not weak. In fact, the screenshot was taken while I was about 1.5 meters away, in line of sight, to the router. If mobile data gets disabled, the phone resumes to using wifi, but the low quality message stays for about a minute longer, before it realises all is good.

I’ve dealt with this issue at home before. What promoted me to write this post, is the circumstances of it happening, at a relative’s house. I recently converted one of their old routers into a dumb wifi extender, via OpenWRT, and this software allows me to enable WPA3 encryption, despite the router not supporting it previously.

My tri band home router has also been the first WPA3 supporting device I’ve owned. But I kept thinking it was a bad purchase with flaky software. Has it not been the root of my problem this whole time?

Does the Fairphone 5 have some weird issues with WPA3 secured wifi networks? Especially if roaming is involved? Even just between bands of the same network?

Moved your post here, sound like the same issue

Has anyone got a response to their ticket from Fairphone yet? It’s extremely frustrating/infuriating to use the phone at home when it’s disconnecting all the time.

It has become nearly impossible to use it to connect to local devices without turning mobile data completely off, not to speak of excessive battery usage.

No response yet on my ticket. Sorry.

I completely share your frustration.
I forgot to switch of mobile data usage a couple of times before watching a video on the Fairphone. This resulted in full consumption of my monthly included data volume in the background. Forcing me to buy extra data volume… :grimacing:

wow didnt notice this thread before, same here, perfectly working wifi so far (until recently, it kept getting anoying like a month ago) multiple wifi locations close by the phone is using all of them before, the signal strength, the symbol is often full or almost full and still it complains about weak quality or so, it falls back to mobile cell data networking when calls are taking place, but not right at the beginning but to make matters worse, the (wifi)call commences and then dies down the remote side doesnt hear my any more, I keep hearing them kind of normally, then the wifi degrades and shows this poor quality i need to disconnect and manually reconnect to make it work again, sometimes the call still recovers mid-call, and this can occur multiple times inside a single call, pretty nightmare :frowning: i first thought this was some app causing network overload or so, but its gotta be calling related stuff it seems, dunno if a wifi call can overwhelm a soho broadband router or so, NAT tables and what not, never happened in the past, at least not like this, never have seen poor wifi message where i usually use this phone (FP5), so this is all new and annoying not to say completely unusable :frowning:

Same issue here. When I look at the connection it even says the signal strength is “very good”. Yet it refuses to connect for a couple of minutes because of “Low quality”. Disabling Wifi scan throttling doesn’t seem to be doing anything. None of the other devices in our household seem to be having any issues. It’s definitely the phone. FP5 with Android 15 build.

Same problem here. Even if I am right beside the router.

Disabling wifi scan throttling does not help.

Only thing that works as a workaround if you disable mobile data when you on wifi. I also have the same issue.

Same issue here. First noticed may battery draining after the last update and after some investigation found that my FP5 keeps disconnecting from wifi. No other devices in my household has this problem, so definitely a Fairphone issue.

It also brings up the question that is it only an FPOS issue, or is it also affecting /e/OS or iodéOS or CalyxOS (latest test version based on Android 16)?

FP5 here also, same issue. My ticket was automatically turned into an RMA, haven’t heard anything more from FP to date.

Above troubleshooting has been ineffective - but the tip about turning on the logging was very useful!

I bought this phone for reparability, as to me that meant reliability, but I’ve had nothing but trouble with this thing. :frowning:

Mostly commenting to keep the thread alive!

Another possible Mitigation:

About 2 weeks ago, I had Internet problems with my ISP, so when I connected to the W-LAN Access Point the “No Internet connection. Do you want to stay connected?” (or similar wording) Dialog appeared. I enabled it.

Since then I haven’t seen (as far as I remember, I didn’t check the logs) the Low Quality Issue at home. It would be nice, if some of you could try out if that works for you and post your experiences.

The easiest way, that come to mind, to get that dialog, would be to unplug the DSL/Coax/Fiber Optic Cable from the CPE (Router) for a minute and then disconnect and reconnect the FP5 to the W-LAN Ap.

Hello fn1701,

I implemented your suggested mitigation yesterday evening. Unfortunately, it did not solve it for me.

This morning the home WiFi was disconnected again with ‘low quality’ warning.

Thanks fn1701.

No, unfortunately that doesn’t help.