I was going to skip this since a lot of solid advice is already here, but there’s one more thing that bit me and it had nothing to do with the robot itself.
Check your cable. On my Polaris 9650iQ, the swivel was fine, basket was clean, rollers had grip, but it kept climbing and then just hanging at the waterline. Turned out the floating cable had developed a mild twist memory from how I was storing it. When the robot climbed, the cable tension would pull slightly upward and toward the wall, almost like it was holding it there.
I noticed it especially when my pump was running at higher RPM and filter pressure was a couple psi over clean baseline. The added surface movement plus cable tension made it worse. I laid the cable straight out in the sun for an afternoon, let it relax, and started loosely coiling it instead of wrapping it tight around the caddy. Since then it climbs, scrubs, then drops back down like it’s supposed to.
If yours consistently stalls in the same zone of the pool, watch the cable while it’s up there. Sometimes it’s not traction or buoyancy at all, it’s just physics working against you.