Skip to content

Error Codes

This page lists common error codes returned by the MoreLogin API.


Response Format

All API responses follow this standard format:

{
  "code": 0,
  "msg": null,
  "data": {},
  "requestId": "unique-request-id"
}
FieldTypeDescription
codeinteger0 = success, >0 = error
msgstringError message (null when successful)
dataobjectResponse data
requestIdstringUnique request identifier for troubleshooting

How a code identifies its area

Codes are not allocated from one flat list. Each product area owns a range, so the first two or three digits tell you which subsystem rejected the request:

RangeArea
14xxxProxies
15xxxGroups and tags
19xxxBrowser profiles
20xxxWallet, orders, and billing
21001Client version too low
33xxxCloud Phone
35xxxAPI authentication and rate limiting
39xxxCloud Storage
40xxxCloud Browser runtimes
41xxxWebhook configuration
99xxxGateway and request validation

Individual operations list the codes they are known to return. See the per-product matrices linked from the Endpoint Retry and Completion Matrix.


Common Error Codes

Returned by any operation, because they come from request validation, permission checks, and the gateway rather than from business logic.

CodeDescriptionSolution
0Success
21001Client version too lowUpgrade the MoreLogin desktop client
35000API requests are too frequentRetry eligible operations with backoff and jitter; see Rate Limits
99000Unknown system errorRetry later and provide requestId to support
99001Invalid parametersCheck request body format and required fields
99002Permission deniedCheck your account permissions
99003Request exceptionMake the necessary business adjustment based on msg
99004Request body too largeReduce the request body
99005Request already in progressWait for the in-flight request to finish before retrying
99006Bad requestCheck the HTTP method, headers, and body
99007Request IP is not allow-listedAdd the caller IP to the allow list
99008IP or device request quota exceededReduce request volume from this IP or device
99009Too many requestsBack off with jitter and retry
99011Request timestamp expiredResend with a current timestamp
99012Cost permission is requiredUse the team owner account, or grant cost permission

Cloud Phone (33xxx)

CodeDescriptionSolution
20002The original monthly order was cancelledCreate a new monthly purchase for eligible Cloud Phones
20003The original monthly order was refundedCreate a new monthly purchase for eligible Cloud Phones
20004The original monthly order does not existVerify the Cloud Phone purchase state and contact support with requestId if it persists
20008The original monthly order is not completed or its status cannot be confirmedCheck the order and Cloud Phone state before retrying
20055A Cloud Phone does not exist, was deleted, or does not belong to the teamVerify every Cloud Phone ID and team ownership
20068A pending monthly payment order already existsComplete or cancel the pending order before using the activation API
20070A concurrent Cloud Phone purchase is already in progressWait for the in-flight purchase to settle, then read state before retrying
20071A selected monthly SKU is unavailable or has no active 30-day priceQuery the monthly SKU endpoint again and choose an available product
33420Paid and unpaid Cloud Phones cannot be activated in the same batchSeparate Cloud Phones by purchase state and submit compatible batches
33421Paid Cloud Phones from different purchase orders cannot be mixedSubmit one activation batch per original purchase order
33422Payment succeeded but activation is incomplete or cannot yet be confirmedInspect data.results and each Cloud Phone's expiry state; do not pay again blindly
33300Cloud Phone does not existVerify the Cloud Phone ID and that it belongs to your team
33301Cloud Phone is not powered onPower it on and wait for a runnable state
33308Another member is using it, cannot power offRetry once the other member releases it
33309Another member is using it, cannot connectRetry once the other member releases it
33315Account in arrears, Cloud Phone frozenTop up the wallet
33316Not enough available profilesUpgrade the plan
33317Profile permission was revokedAsk an administrator to grant access
33318Insufficient balance to power onTop up the wallet
33321Profile is unavailableCheck the profile state before retrying
33322Proxy check in progressPoll until the check finishes
33323Profile is startingWait for the start to finish; do not resend
33324Profile is already runningNo action needed
33325Profile is deactivatedReactivate it before use
33331One-click new device in progress, cannot power offWait for it to finish
33332Restart in progress, cannot power offWait for it to finish
33333Reset in progress, cannot power offWait for it to finish
3333833345Country, time zone, language, longitude, or latitude missing or invalidSee Country Time Zone Table
33346SKU is no longer on saleChoose another skuId
33347Model requires the latest Windows clientUpgrade the MoreLogin desktop client
33367Under maintenance, cannot power onCheck system notices for the recovery window
33376Monthly billing expiredRenew the subscription
3339833400Longitude, latitude, or altitude out of rangeLongitude −180…180, latitude −90…90, altitude −50000…100000
33401Cloud Phone does not support this operationUse a supported model
33407Concurrency package quota exceededWait for a slot or raise the quota
33408Phone number format is invalidStart with +, 1–3 digit country code excluding 86, 8–14 digits total
33418Live-streaming file does not exist or is invalidUpload with uploadType=2 and use the returned fileId
33419Live-streaming file format is unsupportedUpload an MP4 through /cloudphone/uploadFile
33005App installation failedRetry; check storage space on the device
33014Operation too frequentBack off and retry
33714App does not exist or was delistedRefresh the app library
33814RPA template does not existList templates again and use a current templateId
33818RPA template parameter format is invalidSend templateParameter as an escaped JSON string
33303Creating the Cloud Phone failedQuery /cloudphone/page before retrying; do not resend blindly
33320The proxy bound to this Cloud Phone was deletedRebind a proxy with /cloudphone/setProxy
33326Another member is using it, cannot replace the deviceRetry once the other member releases it
33350ADB could not be enabled on some Cloud PhonesThose phones are not running or do not support ADB; re-read state and retry only those
33507File does not exist on the deviceCheck the path; the download request scans the parent directory before transferring

Installation and power operations can additionally surface a provider-mapped code from the 3300133033, 3350033520, 3370033724, or 3390033910 ranges. Which of those is reachable depends on the provider serving the device, so operations do not list them individually.

Browser Profiles (19xxx)

CodeDescriptionSolution
19001Profile name already existsChoose a unique name, or omit envName to get a generated one
19002Profile creation failed downstreamConfirm with /env/page before retrying
19004User agent format is invalidSend a parseable advancedSetting.ua
19005Cookie format is invalidSend cookies as an escaped JSON array string
19039Profile not foundVerify envId / uniqueId and that it belongs to your team
19063Profile count limit reachedDelete profiles or upgrade the plan
19064No permission for this groupAsk an administrator for group access
19065No permission for this profileAsk an administrator for profile access
19099Not enough available profiles, profile use is restrictedUpgrade the plan
19100Platform ID is invalidUse a platformId returned by /system/platform/list
19101Site ID is invalidUse a siteId returned by /system/platform/list
19102Custom platform URL must not be emptySend platformUrl when platformId is 9999
19103Auto-open URL format is invalidSend valid absolute URLs in afterStartupConfig
19104Group ID is invalidUse a group that exists in your team
19105Tag ID is invalidUse tags that exist in your team
19106Proxy ID is invalidUse a proxy that exists in your team, or omit proxyId
19107Browser kernel version is invalidPick a version from /env/advanced/ua/versions
19108User agent version is invalidPick a version from /env/advanced/ua/versions
19109User agent version does not match the user agentMake uaVersion agree with advancedSetting.ua, or send only one
19110Custom URL format is invalidSend a valid absolute URL
19111Firefox supports only Windows and macOSChoose Windows or macOS, or switch to Chrome
19112Encryption key is not set, profile encryption cannot be enabledConfigure a team encryption key, or send isEncrypt=0
19141Limited to 100 characters, digits, letters and spaces onlyShorten accountInfo.otpSecret and remove other characters
19142End-to-end encrypted profiles cannot be modifiedUse the MoreLogin client for encrypted profiles
19143Client version is too low to match the kernelUpgrade the MoreLogin desktop client
19147Daily creation limit exceededUpgrade the plan to raise the limit
19149No cache type was selectedSet at least one cache class to clear
19159Operating system does not match the advanced settingsThe OS cannot be changed on update; keep advancedSetting.os as stored
19160Browser type does not match the advanced settingsThe browser cannot be changed on update; keep advancedSetting.vendor as stored
19175Coordinates outside the service areaChoose coordinates within the supported area
19193The sharer disabled editing for this profileAsk the owner to allow editing

Cloud Storage (39xxx)

CodeDescriptionSolution
39001Cloud drive information not foundCheck that Cloud Storage is provisioned for the team
39011File not foundVerify the file ID
39014File access URL is emptyRe-register the upload
39037File extension parameter is invalidSend a supported extension
39041Storage quota reachedDelete files to free space
39044Duplicate file nameRename the file
39045Too many pending pre-signed uploadsComplete or abandon pending uploads first
39046File was not uploaded successfullyUpload to the pre-signed URL before calling complete
39047Cloud drive expiredRenew Cloud Storage
39048Cloud Storage tag not foundUse a tag returned by /cloudstorage/tag/all
39049Tag IDs must not be emptySend at least one tag; an empty list is rejected
39050File name longer than 60 charactersShorten the name
39051File size must be greater than 0 B and smaller than 2 GBSplit or compress the file

Proxies (14xxx) and Wallet (20xxx)

CodeDescriptionSolution
14003Proxy update failed, or the proxy does not existVerify the proxy ID
14017Proxy cannot be deletedAn unexpired cloud-platform proxy cannot be removed; wait for expiry
14023Proxy provider does not existUse a supported provider value
14024Proxy does not existVerify the proxy IDs
14519Dynamic proxies cannot be modifiedManage dynamic proxies outside the proxy endpoints
20018Could not read the product priceRetry later and provide requestId to support
20029Wallet account is unavailableVerify the team wallet
20032Balance query failedRetry later and provide requestId to support
20041Insufficient balanceTop up the wallet

Cloud Browser runtimes (40xxx)

These are returned by /cloudbrowser/start, /cloudbrowser/stop and /cloudbrowser/connect. Codes raised after the start request is dispatched surface through /cloudbrowser/page, not in the start response.

CodeDescriptionSolution
40001Cloud browser is already runningNo action needed; connect to the existing run
40002Cloud browser cannot be stopped in its current stateRe-read /cloudbrowser/page and retry
40003Proxy check failedVerify the bound proxy is reachable
40006Cloud browser operation failedRetry; if archiving failed, see cloudBrowserArchiveStatus
40008No running cloud browser was foundStart one first, or re-read /cloudbrowser/page
40009Cannot connect to a run started by another memberAsk that member to release it
40010Connecting to the cloud browser failedRetry; the desktop access token could not be minted
40015The profile has no proxy boundBind a proxy with /env/setProxy/batch first
40016The start request could not be dispatchedRetry
40020Cloud browser is stoppingWait for the stop to finish
40021Cloud browser is already startingDo not resend; poll /cloudbrowser/page
40023The profile is in useClose the other session first
40024The cloud browser did not start in timeStart it again
40025The bound proxy no longer existsRebind a proxy
40026The bound proxy expiredRenew or replace the proxy
40027The bound proxy is still being allocatedRetry once allocation finishes
40028Local proxies are not supportedUse a non-local proxy
40029This proxy type is not supportedUse a supported proxy type
40037End-to-end encrypted profiles cannot use the cloud browserUse an unencrypted profile

Webhooks (41xxx)

Returned by the webhook configuration endpoints when the callback URL is rejected.

CodeDescriptionSolution
41001Callback URL must be a valid HTTPS addressSend an HTTPS URL of at most 1024 characters with no user info, no fragment and a valid port, and make sure every address it resolves to is publicly routable

API authentication (35xxx) and teams (12xxx)

CodeDescriptionSolution
12002Team does not existThe member's team was removed; contact support
35002API authentication failedCheck client_id (API ID) and client_secret (API key)
35005The request has no operation permissionThe member is disabled, or the caller IP fails the Open API allow and deny lists

HTTP Status Codes

StatusDescription
200Request processed (check code field for business result)
401Unauthorized — invalid or expired access token
403Forbidden — insufficient permissions
429Too Many Requests — rate limit exceeded
500Internal Server Error — contact support

The current application gateway represents its own rate-limit rejection with business code 35000 and does not explicitly set HTTP 429. An edge proxy or future gateway version may still return 429, so clients should handle both forms.


Retry and Recovery Semantics

Failure categoryRetry?Required client behavior
Validation, permission, balance, or unsupported-feature errorNoCorrect the request, permission, balance, or selected resource before retrying
Rate limit (35000)Yes, conditionallyBack off with jitter; inspect body code even when HTTP status is 200
Temporary server/provider failureYes, conditionallyRetry reads; for writes, query resource/task state first
Asynchronous operation acceptedDo not resend immediatelyPoll the documented status endpoint until success, failure, or timeout
Unknown result after a network timeoutState check firstDo not blindly repeat create, purchase, upload registration, or schedule creation

The public API does not currently document a general idempotency-key header. Endpoint-specific state queries are therefore part of safe recovery for state-changing requests.

For asynchronous operations, an API response with code: 0 can mean “accepted,” not “completed.” Follow the operation documentation for its status field and terminal states.

See the Endpoint Retry and Completion Matrix for every operation and Asynchronous Operations for polling workflows and terminal states.


Tip: Always include the requestId from the response when contacting support for faster troubleshooting.