A player good enough to clear all 100 levels may never get to. Before they do, the playfield can freeze, or the ball can fall into a loop it cannot leave on its own.
The defects, worst first
Defect What breaks Cost Needs
Wedge Ball pinned against a golden brick's face; the level cannot clear and the score climbs Unwinnable A ball that meets a golden brick's face almost along it
Shuttle Ball alternates between two golden bricks Unwinnable A diagonal ball that reflects at an inside corner of solid cells at each end
Orbit Ball circulates among golden bricks along a path of more than two legs Unwinnable Faces and corners of golden bricks and borders that return the ball to its first state
Skim Ball skims under the top border and never returns Unwinnable Any level
Scramble Playfield freezes while the game plays on underneath Unplayable Bat on the right, bottom-left corner clear
Missed clear No destructible bricks are left, but the level does not end Level held open A ball that hits golden bricks after the last destructible brick breaks
Dud A bomb in another bomb's blast shatters and never detonates Lost prize Two bombs next to each other
Orb drift Orb wears other inhabitants' sprites while it returns the ball Cosmetic An orb that catches the ball
Speck A stray speck sits inside the visor's sprite Cosmetic Any key the ROM accepts during the front end
Fire gate The missile launch ignores the fire key while the bat is frozen or stung, or moves under inertia Missile ignored or misfired A missile bat armed while the bat is frozen or stung, or moves under inertia

How the ball gets stuck

Wedge, shuttle, orbit and skim trap the ball in a path it cannot leave. The ball moves in sub-pixel steps. Each axis moves one pixel only when its own count fills up. Every bounce empties both counts and leaves the ball where it is. A ball that bounces before its slow axis moves a pixel therefore travels on one axis only.
A bounce depends only on the ball's heading and on what it hits. A ball that comes back to a place at a heading it had there before repeats its path for good. The anti-stuck nudge turns ball A around after 30 frames within 16 pixels of where it was on both axes. The next bounce undoes the turn, because a heading and its opposite leave a surface at the same heading.
A trapped ball never returns to the bat. Destructible bricks off its path stay out of reach. The level cannot clear while any remain. With none left, the level ends late.

Wedge

The ball sticks to a golden brick.

The ball meets the face of a golden brick almost along the face. It bounces off the face each time it probes ahead, and never moves away from it.
Each bounce scores. Only a bat bounce resets the combo. The score climbs without end.

Shuttle

The ball runs back and forth between two golden bricks.

A diagonal ball meets an inside corner of golden bricks, where the cell beside it and the cell ahead of it both block. A corner sends a diagonal ball straight back along its line. With such a corner at each end, the ball runs between them for good.

Orbit

The ball circles among golden bricks.

The ball bounces among golden bricks and borders along a path of three or more legs. It comes back to where it started at the heading it started with. It then repeats the path for good. Nothing on the path ever changes.

Skim

The ball never leaves the top border.

The ball runs along just under the top border at a heading close to the horizontal. Each time it probes ahead, it also tests the border cell above it, finds it solid and bounces. The bounce is silent and scores nothing.

Scramble

The playfield freezes.

Play with the bat on the right, so the wall runs down the left edge. Clear the bricks from the bottom-left corner and let the ball reach the corner cell.
The game redraws only the cells whose dirty counter is set. A terminator ends the scan. The terminator sits in the bottom-left corner cell. That cell never changes in normal play. A ball drawn there overwrites the terminator.
Without the terminator, the redraw runs past the end of the dirty counters. It sprays graphics over memory. Bands of the screen change color. The redraw never draws parts of the playfield again. Play and the score go on underneath. The damage lasts until the next level starts.

Missed clear

Every destructible brick is gone, but the level plays on.

A level ends when every brick slot is empty or holds a golden brick at rest. The check for this skips a golden brick only when it shows its plain face. A golden brick flashes when the ball hits it. It also twinkles at random. In either case the check takes it for a brick still to break.
The level ends at the first check that finds every golden brick at rest. A ball that bounces among golden bricks therefore pushes the end back, for as long as it stays there.

Dud

A bomb in the blast never goes off.

two_bombs
When two bombs lie next to each other and the ball takes one, its blast clears the eight bricks around it. The other bomb shatters like a plain brick and never detonates.

Orb drift

The orb wears the wrong sprites.

An orb that catches the ball chews it, then spits it out, and the ball slides back toward the bat. On the way its animation runs past its last frame and never stops. The orb then wears frames of the comet and then of the hive.
The drift ends when the ball reaches the bat's losing edge. There the player loses the ball.

Speck

A stray speck sits in the visor's sprite.

A key pressed while the front end is on screen leaves a speck in the visor's first frame. It stays until the player resets the machine.
The ROM stores the last key it accepts in LAST-K. The game keeps a byte of the visor's sprite at the same address. It never copies the sprite in again.

Fire gate

The fire test reads the wrong byte.

The missile launch tests fire in a value it does not choose itself. Under direct control, and under the inertia option while the bat stands still, that value is the controls.
While the bat moves under the inertia option, it is a step from the inertia speed ramp. During the bat freeze, it is the freeze timer. Neither ever holds the fire bit, so the missile does not launch.
During the bee's sting, it is whatever the object manager used last. The launch then follows that value, not the fire key.
Fork me on GitHub