TroubleshootingPublished: 4 min read

Fix ADB "Device Busy", "Unauthorized" and "No Devices" Errors

Fix ADB device busy, unauthorized, offline and no-devices errors with a symptom-to-fix table covering cables, drivers, udev rules and WebUSB.

Most ADB connection errors come from a short list of causes: another program is holding the USB interface, the phone has not authorized your computer, or the cable and USB mode are wrong. Work through the symptom that matches your error below; each fix takes a minute or two. Start by running adb devices and reading the status next to the serial number.

Quick troubleshooting table

SymptomLikely causeFix
Device busy or "claim interface" failureAnother program holds the USB connectionClose Android Studio, scrcpy and other tabs; run adb kill-server
unauthorizedPhone has not approved this computerUnlock phone, accept the prompt, tick "Always allow"
offlineStale or half-open connectionReplug, toggle USB debugging, adb kill-server
Empty list, nothing shownCharge-only cable or wrong USB modeUse a data cable, set USB mode to File transfer
Empty list on WindowsMissing driverInstall the manufacturer's USB driver
Empty list on LinuxMissing udev rulesAdd a udev rule for the vendor, reload rules
Browser shows no device in the USB windowWebUSB permission or busy deviceClose other programs, reconnect, choose the device again

"Device busy": something else owns the USB interface

Only one program can hold the USB connection to a phone at a time. If a second program tries, it fails with a busy or claim-interface error. The usual culprits:

  • Android Studio or another IDE with a running adb server.
  • scrcpy or another mirroring tool.
  • Another browser tab that is already connected to the same phone.
  • A background adb server that grabbed the device first.

Close the other tools and tabs, then stop the background server:

adb kill-server

If you use a browser-based tool such as the ADBKit workspace, the browser needs exclusive access, so keep the adb server stopped while it is connected. You can start it again later with adb start-server, which also happens automatically on your next adb command.

"Unauthorized": the phone has not approved your computer

adb devices shows unauthorized when the phone has not accepted this computer's RSA key. Try, in order:

  1. Unlock the phone and look for the "Allow USB debugging?" dialog. Tick Always allow from this computer and tap Allow.
  2. If no dialog appears, unplug and replug the cable with the screen unlocked.
  3. On the phone, open Settings > System > Developer options (the path varies by manufacturer) and tap Revoke USB debugging authorizations. Then reconnect and accept the new prompt.
  4. Toggle USB debugging off and on.
  5. Run adb kill-server, then adb devices again.

If you have not turned on the setting yet, see how to enable USB debugging.

Note: The prompt can be hidden behind a lock screen or a notification shade. Wake and unlock the phone before concluding it did not appear.

"Offline": connected but not responding

An offline device is visible but not communicating. This is typically a stale connection. Unplug the cable, turn USB debugging off and on, plug back in, and run adb kill-server. Make sure you use a recent platform-tools version, because very old adb builds can misbehave with newer Android releases.

"No devices": nothing is listed

When the list is empty, check the physical layer first:

  • Cable: many cables only charge. Try a known data cable and a port directly on the computer, not a hub.
  • USB mode: pull down the notification shade, tap the USB notification and choose File transfer (MTP). Some phones will not expose ADB in charge-only mode.
  • Windows: the device may need the manufacturer's USB driver, or may appear in Device Manager with a warning icon.
  • Linux: a regular user often cannot open the device without a udev rule for the phone's vendor ID. Add the rule, reload with sudo udevadm control --reload-rules, and replug.
  • Developer options: confirm USB debugging is still on; some phones switch it off after a restart or an update.

WebUSB and browser permissions

Browser-based ADB uses WebUSB, which works in Chromium-based desktop browsers such as Chrome and Edge over HTTPS. Firefox and Safari do not support WebUSB. When you click Connect device, the browser shows its own USB window; if your phone is not listed there, another program is almost certainly holding it, or the cable and mode are the problem. If you dismissed the window or denied access, reload the page and click Connect device again.

ADBKit can reconnect to previously allowed devices automatically, and with several remembered devices you can switch from the device menu. For background on how this works, read what WebADB and WebUSB are. If a wired connection stays unreliable, ADB over Wi-Fi is an alternative.

Screen mirroring and input problems

If the screen mirrors but taps or keys do nothing, that is a separate issue from the connection. Some phones need an extra developer setting to accept injected input, and the scrcpy project documents these cases in its FAQ: <https://github.com/Genymobile/scrcpy/blob/master/FAQ.md>. The advice there also applies to other tools built on scrcpy.