Android 16 Wireless issues - no roaming between APs

Hi everybody! I recently upgraded my Samsung S24 to Android 16 and there are a lot of issues on the WIFI side:

  • roaming between APs no longer works
  • jumping automatically from 2Ghz to 5GHz no longer works
  • when the Wifi signal is bad the phone switches to mobile network 5G with WIFI ON!!!
  • all other Android devices in the house which are Android 15 or below work flawlessly related to roaming.

The reason I am posting here is because I have 3 APs from Mikrotik covering the house, running 7.20.1 [CAP AC, WAP AX, CAP AX] with wave2 and capsman on an RB5009 and I spent a lot of time thinking the jump from 7.19.4 was the culprit which resulted in downgrades across the board and many hours rebuilding configs. So no, if you have wifi issues with Android 16, it’s the Android, not Mikrotik [this time :))].

Hi

Do you use WPA3 in your network? If yes, then switch it off for tests.

Hi! No, I did not add WPA3 to the supported protocols. I don’t think it’s something that can be configured on the Mikrotik side, it’s just a botched Android upgrade from Google or Samsung. Reddit is full of people complaining about the same things. And on Android 15 and below everything works great, roaming is instant. Kind of impressed, really.

WPA3 works just fine on Android, 15 and 16.

If your config is ok.
So, time to put config on the table, perhaps ?

Yes. And maybe some logs?

Here is my Wifi config, on the RB5009

/interface wifi channel

add band=2ghz-ax disabled=no name=channel-2Ghz-AX reselect-interval=23h..1d

add band=5ghz-ax disabled=no name=channel-5Ghz-AX reselect-interval=23h..1d skip-dfs-channels=all

add band=5ghz-ac disabled=no frequency=5250-5270 name=channel52-ac-5ghz width=20/40/80mhz

add band=5ghz-ax disabled=no frequency=5490-5510 name=channel100-ax-5ghz width=20/40/80mhz

add band=2ghz-ax disabled=no frequency=2426-2448 name=channel6-ax-2ghz width=20/40mhz

add band=2ghz-n disabled=no frequency=2401-2423 name=channel1-n-2ghz width=20/40mhz

add band=2ghz-n disabled=no name=channel-2Ghz-N

add band=5ghz-ax disabled=no frequency=5735-5755 name=channel149-ax-5ghz width=20/40/80mhz

/interface wifi security

add authentication-types=wpa2-psk disabled=no encryption=ccmp,gcmp ft=yes ft-over-ds=yes name=security-internal wps=disable

add authentication-types=wpa2-psk disabled=no encryption=ccmp,gcmp ft=yes ft-over-ds=yes name=security-iot wps=disable

add authentication-types=wpa2-psk disabled=no encryption=ccmp,gcmp ft=yes ft-over-ds=yes name=security-capac

/interface wifi configuration

add channel=channel-2Ghz-AX comment=NEW disabled=yes mode=ap name=cfg-ax-2ghz-wapax security=security-internal ssid=Wifiname

add channel=channel-2Ghz-AX comment=NEW disabled=yes mode=ap name=cfg-ax-2ghz-iot-wapax security=security-iot ssid=Wifiname-IOT

/interface wifi steering

add disabled=no name=steering-internal neighbor-group=dynamic-Wifiname-8a166be5,dynamic-Wifiname5G-8a166be5 rrm=yes wnm=yes

/interface wifi configuration

add channel=channel52-ac-5ghz comment=NEW country=Romania disabled=no mode=ap name=cfg-ac-5ghz-capac security=security-capac ssid=Wifiname5G steering=steering-internal

add channel=channel149-ax-5ghz comment=NEW disabled=no mode=ap name=cfg-ax-5ghz-wapax security=security-internal ssid=Wifiname5G steering=steering-internal

/interface wifi

# operated by CAP C4:AD:34:12:B5:44%bridge, traffic processing on CAP

add configuration=cfg-ac-5ghz-capac disabled=no name=wifi2-fl1-5g radio-mac=C4:AD:34:12:B5:47

# operated by CAP F4:1E:57:C9:78:F0%bridge, traffic processing on CAP

add configuration=cfg-ax-5ghz-wapax configuration.mode=ap disabled=no mtu=1500 name=wifi2-grd-5g radio-mac=F4:1E:57:C9:78:F3

/interface wifi datapath

add bridge=bridge disabled=no name=datapath-internal

add bridge=bridge disabled=no name=datapath-iot vlan-id=10

add bridge=bridge disabled=no name=datapath-capac

/interface wifi configuration

add channel=channel100-ax-5ghz comment=NEW country=Romania datapath=datapath-internal disabled=no mode=ap name=cfg-ax-5ghz-capax security=security-internal ssid=Wifiname5G steering=steering-internal

add channel=channel-2Ghz-AX country=Romania datapath.bridge=bridge disabled=no mode=ap name=cfg-2Ghz-AX security=security-internal ssid=Wifiname steering=steering-internal

add channel=channel-2Ghz-AX channel.band=2ghz-ax country=Romania datapath=datapath-iot datapath.bridge=bridge disabled=no mode=ap name=cfg-2Ghz-AX-iot security=security-iot ssid=Wifiname-IOT

add channel=channel-2Ghz-N country=Romania datapath=datapath-capac disabled=no mode=ap name=cfg-2Ghz-N-int security=security-capac ssid=Wifiname

/interface wifi

# operated by CAP F4:1E:57:1C:43:AE%bridge, traffic processing on CAP

add configuration=cfg-2Ghz-AX disabled=no name=wifi-gnd-2g radio-mac=F4:1E:57:1C:43:B1

# operated by CAP F4:1E:57:1C:43:AE%bridge, traffic processing on CAP

add configuration=cfg-2Ghz-AX-iot disabled=no mac-address=F6:1E:57:1C:43:B1 master-interface=wifi-gnd-2g name=wifi-gnd-2g-iot

# operated by CAP F4:1E:57:1C:43:AE%bridge, traffic processing on CAP

add configuration=cfg-ax-5ghz-capax disabled=no name=wifi-gnd-5g radio-mac=F4:1E:57:1C:43:B0

# operated by CAP C4:AD:34:12:B5:44%bridge, traffic processing on CAP

add configuration=cfg-2Ghz-N-int disabled=no name=wifi2-fl1-2g radio-mac=C4:AD:34:12:B5:46

# operated by CAP F4:1E:57:C9:78:F0%bridge, traffic processing on CAP

add configuration=cfg-2Ghz-AX disabled=no name=wifi2-grd-2g radio-mac=F4:1E:57:C9:78:F2

# operated by CAP F4:1E:57:C9:78:F0%bridge, traffic processing on CAP

add configuration=cfg-2Ghz-AX-iot disabled=no mac-address=F6:1E:57:C9:78:F2 master-interface=wifi2-grd-2g name=wifi2-grd-2g-iot

/interface wifi capsman

set ca-certificate=CAPsMAN-CA-F41E57DC52A9 certificate=CAPsMAN-F41E57DC52A9 enabled=yes interfaces=bridge package-path="" require-peer-certificate=no upgrade-policy=none

/interface wifi provisioning

add action=create-enabled comment=wap-ax-grd-5ghz disabled=no master-configuration=cfg-ax-5ghz-wapax name-format=wifi2-grd-5g radio-mac=F4:1E:57:C9:78:F3

add action=create-enabled comment=wap-ax-grd-2ghz disabled=no master-configuration=cfg-2Ghz-AX name-format=wifi2-grd-2g radio-mac=F4:1E:57:C9:78:F2 slave-configurations=cfg-2Ghz-AX-iot slave-name-format=wifi2-grd-2g-iot

add action=create-enabled comment=capac-5ghz disabled=no master-configuration=cfg-ac-5ghz-capac name-format=wifi2-fl1-5g radio-mac=C4:AD:34:12:B5:47 supported-bands=5ghz-ac

add action=create-enabled comment=capac-2ghz disabled=no master-configuration=cfg-2Ghz-N-int name-format=wifi2-fl1-2g radio-mac=C4:AD:34:12:B5:46 slave-name-format=wifi2-fl1-2g-iot supported-bands=2ghz-n

add action=create-enabled comment=cap-ax-gnd-2ghz disabled=no master-configuration=cfg-2Ghz-AX name-format=wifi-gnd-2g radio-mac=F4:1E:57:1C:43:B1 slave-configurations=cfg-2Ghz-AX-iot slave-name-format=wifi-gnd-2g-iot supported-bands=2ghz-ax

add action=create-enabled comment=cap-ax-gnd-5ghz disabled=no master-configuration=cfg-ax-5ghz-capax name-format=wifi-gnd-5g radio-mac=F4:1E:57:1C:43:B0 supported-bands=5ghz-ax

As for logs:

  • the 86:F0… MAC is Android 15 and roams through the house just fine
  • the B0:54… MAC is Android 16 and simply drops the connection when signal becomes too low

I have a Galaxy S24 Plus, recently upgraded to Android 16 and I can still see in the log that from time to time it is being roamed between my two wAP ax access points (I’m using CAPsMAN on E50UG). I’m even using WPA3. I can post my config if you want.

Q:
why you use this ?
encryption=ccmp,gcmp

Not sure. I removed them to test, no change.

I’m still pretty sure the issue is with the phone itself. Found a hidden menu that shows this:

The phone sees all APs and still chooses to hang on to the bad signal one.

One proposed step on Samsung forums was to reset my phone but that’s a though one…

Thank you all for answering.

FWIW I have S25 with Android 16 and it works flawless using WPA3.

Try to change channel width to 40 or 20Mhz just for test

WPA3 MUST be enabled in order for roaming to work, i had same issue with my brand new S25 ULTRA, it would not roam unless WPA3 is enabled which was discovered by mikrotik support after i contacted them with logs.

Maybe you have same issue, did you try enabling WPA3?

Man, you deserve the mother of all beers!!! Enabling WPA3-PSK in Security made it work flawlessly.

Many thanks to all that took their time to reply!

+1

I was also really (!) frustrated because i got a new AX3 and with this i updated all 3 Routers to 8.20.1 and the Problems started (Disconnects, Sticky AP, no Internet etc.).

Debugged hours, first i thought it was because of AX / AC combi.. :frowning: but this fixed it finally.

I’m wondering If there is some Kind of FAQs regarding such Problems to help Mikrotik Customers? Iwas NEVER expecting Something Like wpa3…

Hello, i have the same problem. But i used the ppsk feature and this only works with wpa2, so i could not easy upgrade to wpa3 for roaming work again on andorid 16.

Any suggestions?