Quick answer: When a controller doesn't work, the game either isn't detecting it, isn't mapping its buttons, or isn't receiving its input. Causes include detection/connection failures (the game doesn't see the controller), missing or incorrect button mappings (the controller is detected but its inputs do nothing or the wrong thing), and input-system issues (the input isn't reaching gameplay). Find which controllers are affected, then fix detection, support standard controller input layers, and handle connect/disconnect properly.
A controller that doesn't work is a complete barrier for players who play with one, they can't play at all. Controller support is fiddly because of the variety of controllers, connection methods, and input APIs, so 'controller not working' can fail at detection, mapping, or input delivery. Fixing it means finding where the chain breaks and supporting controllers robustly.
Why Controllers Don't Work
Getting controller input into the game involves detection, mapping, and delivery, and failure at any stage means the controller 'doesn't work.' Detection/connection, the game doesn't detect the controller (wrong or unsupported input API, the controller type isn't recognized, a connection issue), so it sees no controller at all. Mapping, the controller is detected but its buttons aren't mapped (or mapped wrong), so inputs do nothing or trigger the wrong actions, this is common with the variety of controller layouts. And input delivery, the input is read but doesn't reach gameplay (an input-system bug). Different controllers (Xbox, PlayStation, generic) and connection methods (USB, Bluetooth) add variety that can break support for specific ones.
So 'controller not working' might be no detection, no mapping, or no delivery, and might affect all controllers or only specific types/connections. Identifying which is the first step.
How to Diagnose It
Determine where it breaks and for which controllers. Is the controller detected at all (does the game see it)? If not, it's a detection/API issue. If detected but inputs do nothing or the wrong thing, it's a mapping issue. If inputs are read but don't affect gameplay, it's a delivery issue. And which controllers fail, all of them (a fundamental input problem) or specific types/connections (support gaps for those)? Reports often specify the controller ('my PlayStation controller doesn't work'), which is a strong clue.
Bugnet captures reports with context (and you can capture device/controller info), so controller-not-working reports and which controllers/platforms they affect surface, revealing whether it's all controllers or specific ones, which distinguishes a general input bug from a support gap for particular hardware. This tells you whether to fix the input system or add support for the affected controller types.
How to Fix It
Fix the failing stage and broaden support. For detection, use a robust input layer that detects common controllers, supporting standard controller input APIs/abstractions (like the platform's gamepad API, or input middleware that handles many controller types) rather than assuming one specific controller, so detection works across the controllers players use. For mapping, ensure detected controllers are correctly mapped (handle the common layouts; offer remapping so players can fix mappings themselves). For delivery, fix the input-system bug so read inputs reach gameplay. And handle connect/disconnect, support controllers being plugged in/out mid-game and reconnecting (a common source of 'stopped working').
Supporting a broad input abstraction (rather than hard-coding one controller) is the key to working across the controller variety players have. After fixing, test with the controller types and connection methods your players use (Xbox, PlayStation, generic; USB and Bluetooth), and verify detection, correct mapping, and responsive input. And offer remapping as a safety net so players can resolve mapping issues themselves. Robust, broad controller support removes a complete barrier for controller players.
A controller not working breaks at detection, mapping, or delivery. Use a broad input layer that supports many controllers, handle connect/disconnect, and offer remapping as a fallback.