← Back to ProDirt Blog

UniFi Sticky Client Hell: 240 Laptops Glued to One AP at a School

A building full of APs, students everywhere, and everyone was getting 4 Mbps. The problem wasn't the internet — it was that every device in the building was connected to a single access point in the Media Room.

Got a call from a school: Wi-Fi is slow, teachers are complaining, Google Classroom is lagging. They've got UniFi APs throughout the building, a decent internet pipe, and nothing obvious in the dashboard screaming at you. Speeds are 4.3 down, 1.6 up. On paper the APs look fine.

Pulled up the client list and there it was. The Media Room AP — where students store their Chromebooks and laptops overnight — had 240+ active clients. Every other AP in the building had somewhere between 3 and 12. The devices were connecting to the Media Room AP at the start of the day and never leaving. Didn't matter that they were sitting in a classroom on the other side of the building with a better AP five feet away. 802.11 clients are stubborn like that.

Why Clients Get Sticky

The 802.11 spec puts roaming decisions entirely on the client, not the access point. An AP can suggest that a client move on, but it can't force it. So unless you configure the AP to actively kick clients off when their signal drops below a threshold, a device that connected in the Media Room at 7am will happily drag that association across the building all day — getting progressively worse signal and slower speeds — because dropping and reconnecting costs it a tiny bit of time and battery, and clients are optimized to avoid that.

The result in a school environment is textbook: storage room becomes the overnight charging station, becomes the association anchor point for half the building every morning.

The Fix: Roaming Assistant + Power Reduction

Two changes, both in the UniFi controller under the specific AP settings for the Media Room.

1. Enable Roaming Assistant

In UniFi, navigate to Devices → Media Room AP → Config → Radios. Enable Roaming Assistant and set the threshold. We used -75 dBm on the AP level, with a global minimum RSSI of -65 dBm set across the site.

Here's the part that trips people up with dBm values — bigger negative number means weaker signal. So -65 dBm is more aggressive (kicks clients sooner, requires stronger signal) than -75 dBm. When a client's signal to this AP drops below -65 dBm, the AP actively pushes the client to reassociate. Most devices will find a closer AP within a second or two.

ℹ️ The dBm mental model: Think of it as a negative score. -50 is excellent, -70 is okay, -85 is garbage. A threshold of -65 means "if you drop below okay, go find something better." A threshold of -80 means "stay connected until things are genuinely bad."

2. Reduce Transmit Power on the Media Room AP

Roaming Assistant handles clients that are already connected and degraded. But it doesn't stop a device in a classroom from initially associating with the Media Room AP because it can still see it at -68 dBm from across the building. The solution is to shrink the Media Room AP's coverage bubble by dropping its transmit power.

Changed it from Auto to Medium. This reduces how far the AP reaches, so devices in distant rooms simply don't see it as a strong enough candidate at boot. The nearby AP wins the initial association and Roaming Assistant keeps it there.

3. Increase Channel Width on 5 GHz

While we were in there, the 5 GHz radios were configured at 40 MHz channel width. Pushed those to 80 MHz and enabled additional DFS channels. This doubled the theoretical throughput ceiling for clients that do have a clean 5 GHz path to an AP — which, after fixing the distribution problem, was now most of them.

⚠️ DFS channels and radar: DFS channels require the AP to do a channel availability check on startup and will briefly go offline if they detect radar. In a school setting this is usually fine. Near an airport or military installation, stick to non-DFS.

Settings Summary

Result

Client distribution across the APs normalized almost immediately. The Media Room AP dropped from 240+ clients to a handful. Speeds across the building came back up. A few days later the school staff reported that classroom assignments were loading without issues and nobody was complaining about lag anymore.

The whole thing took maybe 45 minutes to diagnose and configure once I was actually in the controller. The hardest part was explaining to the client why a room full of access points on a good internet connection was producing 4 Mbps — the answer being "because 240 devices were sharing one of them."

Wrapping Up

Sticky client issues are one of the most common Wi-Fi complaints in environments where devices are stored in one location overnight and used throughout a larger space — schools, warehouses, clinics. The UniFi Roaming Assistant + transmit power combination handles it cleanly without requiring any changes on the client side. If you're seeing one AP in your list with 10x the clients of every other AP, that's your diagnosis right there.