Why robot vacuums get stuck on sills, dark rugs and mirrors
The same doorsill, the same black rug, the same phone cable on the floor. Robot vacuums strand in a handful of ordinary places, and the places are not random.

The robot is halfway over the doorsill when it stops. Its front wheels are on the far side and its belly rests on the wooden strip. The drive wheels spin in the air. Nothing is broken. The machine is balanced on its underside, and it will stay there until you lift it off.
If your robot vacuum keeps getting stuck, it is probably getting stuck in the same few places: a raised sill, a black rug, a floor-length mirror, a cable left on the floor. Each one breaks an assumption built into the robot’s sensors or its wheels. Once you know which assumption failed, a stranding becomes something you can plan around.
Four places robots reliably fail

The sill is the most physical of the four. Every robot has a maximum climb height. A transition strip just above it lets the front wheels mount the edge, then leaves the body resting on the strip while the drive wheels lose the floor.
Software cannot put a wheel back on the ground, so the fixes makers sell are mechanical. Roborock’s Qrevo Curv can lift its whole chassis to climb. Roborock rates it for a 3cm sill, about 1.2 inches, and 4cm where two strips are stacked, figures from the company’s own testing.
MOVA says its StepMaster system climbs sills and rugs up to 6cm, about 2.4 inches. Most robots handle low or beveled sills, and taller ones can stop them. So the comparison that settles it is the climb height on your robot’s spec sheet against the tallest sill in the house.
A black rug stops a robot for a stranger reason. On the robot’s underside sit cliff sensors, which fire infrared light at the floor and wait for it to bounce back. No return means a drop, and the robot stops short of it.
So why would a flat rug look like a staircase? A dark rug soaks up much of that light. The return comes back weak or not at all, and the robot reads solid ground as a drop. It halts at the edge of the rug as if it were standing at the top of the stairs.
Roombas have done this for years on black surfaces and some dark carpets, a false alarm that can keep the robot from entering or cleaning them. The sensor reports accurately that nothing came back; the mistake is in what the robot concludes from that.
Figure
Why a dark rug reads as a drop
- Floor returnsThe pulse leaves, meets a surface within range, and comes back. The sensor reads floor and the robot drives on.
- Dark floor scattersA matte black surface absorbs the pulse instead of returning it, so nothing comes back.
- A real dropNothing within range to return from. The signal is identical to the rug, which is why a robot can refuse to cross a dark mat.
Mirrors and floor-length windows fool the robot’s eyes. A LiDAR scanner measures distance by timing a laser’s return, and a camera system (vSLAM) tracks features from frame to frame. A mirror hands both of them a reflected room, so the robot can record a phantom space behind the glass and plan a route into it.
Clear glass can let the laser pass straight through to whatever sits outside. Worse, a reflection can damage the saved map as well as the current run, which few household problems do. The error then comes back on every later run until you correct the map.
A cable is where the robot ties itself up. It may see the cord and even know what it is. But once a wheel or the brushroll touches it, the cable can wrap around, and the robot cannot back out of the knot.
Rug fringe does the same, and MOVA counts fringes and tassels as one of the most common causes of robot vacuums getting stuck. From the third generation of the Roomba onward, iRobot’s answer was a brush that can reverse its rotation to unwind a caught cord or tassel.
The strand catalog
Each failure traces to one assumption
| Trigger | What breaks | What goes wrong |
|---|---|---|
| High threshold | Drivetrain geometry | Robot high-centers and the wheels lose the floor |
| Dark rug or floor | Infrared cliff sensor | Absorbed light reads as a drop |
| Mirror or low window | Camera or LiDAR | Reflection mapped as real space |
| Cable or rug fringe | Brushroll and wheels | Strand wraps the brush and the robot cannot back out |
Changing the floor, and what the robot does next
Some of the fixes are yours. Cables can come off the floor or run behind furniture, and a tall sill can be given a ramp. A dark rug is harder, because the sensor doing the stopping is also the one that keeps the robot off the stairs.
MOVA describes a test for it: a small piece of light-colored tape over part of the cliff sensor, briefly, to see whether that sensor is what stops the robot. A sensor covered that way can report floor where there is none, including at the top of a staircase.
So the tape belongs on one test run, in a room with no drop, and comes off afterward. Fringe is simpler. Fold it under, or fence the edge of the rug off with magnetic boundary strips.
Term
Magnetic boundary stripA strip of magnetic tape laid flat on the floor, which a robot built to detect it treats as a line it will not cross. Laid along the edge of a rug, it keeps the robot away from the fringe.The rest is up to the robot, and its basic move is to give up and call for help. When a Roomba senses it is stuck, cannot turn its main brushes, no longer feels the floor beneath it, or has worked into a narrow space it cannot leave, it stops and sounds an alert so someone can find it.
Every stranding above can end that way, with you walking over to lift it free. Reversing brushes and lifting chassis are attempts to get the robot out on its own, before it has to sound that alert.
If one of these spots stops your robot every day, the fix guide for a robot vacuum that keeps getting stuck takes them in order.
Put together, a robot vacuum keeps getting stuck where the floor breaks something it assumes. It takes ground that returns no light for a drop, a reflected room for a real one, a sill it can mount for one it can clear, and a cord for something that lies still.
Makers print climb heights from their own testing; how often a robot frees itself is harder to find. Until owners or a test lab start counting rescues, the number you can check is the sill itself. Hold a ruler against the tallest one in the house, then look up the climb height of the robot that keeps stopping there.


