All articles Bot detection

Waiting Room and Virtual Queue Abuse: Detecting Bots in Line

A virtual waiting room is supposed to make a drop fair by putting everyone in a randomized line. But if a scalper can flood the room with ten thousand sessions, they walk away with a huge slice of the front-of-line positions.

The queue itself is not the defense. The defense is verifying that each spot in line belongs to a distinct, real device rather than a bot task.

How queue flooding works

Waiting rooms typically assign each visitor a token and either randomize or order the draw when the sale opens. The system assumes one person equals one session. Scalpers break that assumption by generating sessions at scale.

Before the room opens, bots create thousands of parallel sessions, each with its own cookies, proxy, and browser profile. When positions are drawn, the operator holds a proportional share of the best ones. From there they hand the winning sessions off to auto-checkout tasks. The room did its job of spacing out traffic, but it never checked whether the sessions were real.

Why session counting is not enough

Counting sessions per IP fails because each bot session rides its own residential proxy. Counting per account fails because accounts are cheap and disposable. Even fresh-cookie detection falls short, since every bot session starts with a clean jar by design.

What does not scale for the attacker is the physical device. Ten thousand sessions might spread across a thousand proxies, but they execute on a much smaller set of machines and virtualized browser profiles. Anchor identity there and the flood collapses into a handful of offenders.

Device signals inside the queue

Prynt assigns a stable visitorId as each visitor enters the waiting room, derived from device and browser attributes that persist across cookie clears and IP changes. That lets you count real devices in line, not raw sessions.

  • Duplicate visitorIds reveal one machine holding many queue positions.
  • Automation flags surface headless browsers and frameworks generating the sessions.
  • Proxy and datacenter detection expose the rotating IPs behind the flood.
  • Emulator and VM traits point to the servers running the session farm.

With this in place you can cap queue entries per device and strip out the duplicates before the draw, so the randomized positions go to distinct people. Our bot detection overview shows how these signals combine into a single verdict you can act on.

Hardening the waiting room

Fold device verification into the queue lifecycle rather than the checkout at the end.

  1. Issue a visitorId the moment a visitor enters the waiting room, before any position is assigned.
  2. Verify it server-side and deduplicate positions so one device cannot hold many slots.
  3. Cap entries per device and reject sessions flagged as automated before the draw runs.
  4. When the sale opens, re-check the visitorId at checkout to catch handoffs to fresh bot tasks.
  5. Keep a reputation list so devices that flooded a previous drop start the next one flagged.

Deduplicating at entry is what makes the difference. If you wait until checkout, the bot has already claimed a disproportionate share of good positions and the line was never fair.

There is a subtle second attack to watch for: session handoff. A bot may earn a good queue position, then pass the authenticated session token to a separate auto-checkout task running on a different machine. Re-verifying the visitorId at the moment of purchase catches this, because the device presenting the winning token no longer matches the device that stood in line. Treat the queue position and the checkout as two checkpoints that must agree, not as a single gate you pass once and forget.

Confirming the queue was fair

After the event, compare the number of positions drawn to the number of unique verified devices in the room. A fair queue shows those numbers close together. A flooded one shows far more positions than real devices, meaning duplicates slipped through and your per-device caps need tightening. Watching this ratio across successive drops also tells you whether operators are adapting, since a creeping gap is an early warning that a new evasion technique is gaining ground.

Also watch how quickly the winning slots converted to resale listings. A clean queue produces buyers who keep their items; a botted one produces instant flips.

A waiting room only spreads traffic out. Verifying that each place in line is a real device is what actually keeps a drop fair. Start free and try flooding your own test queue in the playground to see how fast duplicate devices surface.

Try it free

Prynt is device intelligence with a free tier — visitor IDs, bot & fraud Smart Signals, and behavioral biometrics, powered by a cross-site network. Start free.

Keep reading