Error codes

Every error a Droidline command can return, with its HTTP status and whether retrying makes sense.

A failed command answers ok: false with error (one of these codes), msg (the message below, rendered in the server's language), retryable, and the fields the message uses. SDKs raise one exception class per code.

NOT_FOUND

The target did not appear in time. The current package/activity is returned in screen.

HTTP
422
Retry
yes

Message Could not find {target} within {timeout}s. Current screen: {screen}

AMBIGUOUS

Several elements match. Only raised in strict mode; candidates are returned.

HTTP
422
Retry
no

Message {count} elements match {target}. Pass nth or a narrower selector

NOT_CLICKABLE

Both the node action and the coordinate tap failed.

HTTP
422
Retry
yes

Message Found {target} but both the node click and the coordinate tap failed

TIMEOUT

The action itself timed out. Safe to retry.

HTTP
504
Retry
yes

Message {cmd} did not finish within {timeout}s

NO_ACCESSIBILITY

Accessibility service is off.

HTTP
409
Retry
no

Message The Droidline accessibility service is off. On the phone: Settings > Accessibility > Droidline

NO_IME

The Droidline keyboard is not selected, so key codes, text and clipboard reads are unavailable.

HTTP
409
Retry
no

Message The Droidline keyboard is not the current input method. Switch to it on the phone to send key codes, text or read the clipboard

NO_PERMISSION

A permission such as VPN or notification access is missing. The permission name is returned.

HTTP
409
Retry
no

Message Permission {permission} is not granted on the phone

APP_NOT_FOUND

Package is not installed. Similar package names are suggested.

HTTP
422
Retry
no

Message Package {package} is not installed. Similar: {similar}

ACTIVITY_BLOCKED

Tried to start a non-exported activity. Suggests launching the package default.

HTTP
422
Retry
no

Message {activity} is not exported, so other apps cannot open it. Call launch("{package}") without an activity

MACRO_FAILED

A settings macro could not find its button (kill, clear_data, data, wifi, airplane). The blocked step and screen are returned.

HTTP
422
Retry
yes

Message Settings macro {cmd} stopped at step "{step}" on {screen}

PROXY_FAILED

Upstream connection or authentication failed. reason is auth, timeout, refused or protocol.

HTTP
502
Retry
yes

Message Upstream proxy failed: {reason}

UNKNOWN_CMD

Command not supported. The agent version is returned.

HTTP
404
Retry
no

Message Unknown command {cmd}. Agent version {agent}

UNSUPPORTED

The phone's Android version cannot do this without ADB or root.

HTTP
422
Retry
no

Message {cmd} needs Android {min_release} or later. This phone runs Android {release}

BAD_ARGS

Missing or invalid parameters.

HTTP
400
Retry
no

Message Invalid arguments for {cmd}: {reason}

DEVICE_NOT_FOUND

No paired device has that ID or name.

HTTP
404
Retry
no

Message No paired device named {device}

DEVICE_OFFLINE

The device is paired but offline. Commands wait for a reconnect before failing.

HTTP
503
Retry
yes

Message {device} did not reconnect within {timeout}s

DEVICE_AMBIGUOUS

No device was given and more than one is online.

HTTP
400
Retry
no

Message {count} devices are online. Pass device to pick one: {devices}

AGENT_RESTARTED

The phone app restarted with this command in flight. Not retried automatically to avoid running it twice.

HTTP
503
Retry
yes

Message The agent on {device} restarted while {cmd} was running. It may or may not have run

UNAUTHORIZED

Client API token missing or wrong.

HTTP
401
Retry
no

Message This connection needs a client token

PAIRING_FAILED

The pairing code did not match a waiting phone.

HTTP
422
Retry
no

Message No phone is waiting with code {code}

INTERNAL

Bug. Please report it with the server log.

HTTP
500
Retry
no

Message Internal error: {reason}