Skip to content

Mã lỗi

Trang này liệt kê các mã lỗi thường gặp mà API MoreLogin trả về.


Định dạng phản hồi

Mọi phản hồi của API đều theo định dạng chuẩn sau:

{
  "code": 0,
  "msg": null,
  "data": {},
  "requestId": "unique-request-id"
}
TrườngKiểuMô tả
codeinteger0 = thành công, >0 = lỗi
msgstringThông báo lỗi (null khi thành công)
dataobjectDữ liệu phản hồi
requestIdstringĐịnh danh yêu cầu duy nhất dùng để chẩn đoán

Cách nhận biết mã lỗi thuộc lĩnh vực nào

Mã lỗi không được cấp từ một dãy phẳng duy nhất. Mỗi lĩnh vực sản phẩm có một khoảng riêng, nên hai hoặc ba chữ số đầu cho bạn biết hệ thống con nào đã từ chối yêu cầu:

KhoảngLĩnh vực
14xxxProxy
15xxxNhóm và thẻ
19xxxProfile trình duyệt
20xxxVí, đơn hàng và tính phí
21001Phiên bản client quá cũ
33xxxCloud Phone
35xxxXác thực API và giới hạn tần suất
39xxxCloud Storage
40xxxRuntime của Cloud Browser
41xxxCấu hình webhook
99xxxGateway và kiểm tra yêu cầu

Mỗi endpoint đều liệt kê những mã mà nó được biết là có thể trả về. Xem các bảng theo từng sản phẩm được liên kết từ bảng thử lại và hoàn tất theo endpoint.


Mã lỗi chung

Bất kỳ endpoint nào cũng có thể trả về, vì chúng đến từ việc kiểm tra yêu cầu, kiểm tra quyền và gateway, không phải từ logic nghiệp vụ.

MãMô tảCách xử lý
0Thành công—
21001Phiên bản client quá cũHãy cập nhật client desktop của MoreLogin
35000Yêu cầu tới API quá thường xuyênHãy thử lại các tác vụ phù hợp với backoff kèm jitter; xem Giới hạn tần suất
99000Lỗi hệ thống không xác địnhHãy thử lại sau và cung cấp requestId cho bộ phận hỗ trợ
99001Tham số yêu cầu không hợp lệHãy kiểm tra định dạng phần thân và các trường bắt buộc
99002Không có quyền thực hiệnHãy kiểm tra quyền của tài khoản bạn
99003Ngoại lệ trong yêu cầuHãy điều chỉnh nghiệp vụ cần thiết theo msg
99004Phần thân yêu cầu quá lớnHãy giảm kích thước phần thân yêu cầu
99005Đã có một yêu cầu giống vậy đang xử lýHãy đợi yêu cầu đang chạy kết thúc rồi thử lại
99006Yêu cầu không hợp lệHãy kiểm tra phương thức HTTP, header và phần thân
99007IP của yêu cầu không nằm trong danh sách cho phépHãy thêm IP gọi vào danh sách cho phép
99008Vượt hạn mức số yêu cầu theo IP hoặc thiết bịHãy giảm lượng yêu cầu từ IP hoặc thiết bị này
99009Quá nhiều yêu cầuHãy chờ theo backoff kèm jitter rồi thử lại
99011Dấu thời gian của yêu cầu đã hết hạnHãy gửi lại với dấu thời gian hiện tại
99012Cần quyền chi phíHãy dùng tài khoản chủ nhóm, hoặc cấp quyền chi phí
15003Không tạo được thẻTruy vấn thẻ trước khi thử lại; lưu requestId nếu lỗi tiếp diễn
15004Không cập nhật được thẻ hoặc liên kếtTruy vấn thẻ trước khi thử lại; lưu requestId nếu lỗi tiếp diễn

Cloud Phone (33xxx)

MãMô tảCách xử lý
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
33310Điện thoại bị thành viên khác chiếm dụng; không thể khởi động lạiChờ thành viên khác giải phóng điện thoại rồi kiểm tra trạng thái.
33311Điện thoại bị thành viên khác chiếm dụng; không thể đặt lạiChờ thành viên khác giải phóng điện thoại rồi kiểm tra trạng thái.
33359Thao tác nguồn khác đang giữ khóa điện thoạiKiểm tra trạng thái và chờ thao tác hiện tại trước khi thử lại.
33382Điện thoại đang được chuyểnChờ chuyển xong và xác minh quyền truy cập trước khi thử lại.
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 không tồn tạiHãy kiểm tra ID Cloud Phone và xem nó có thuộc nhóm của bạn không
33301Cloud Phone chưa bậtHãy bật máy và đợi tới trạng thái có thể chạy
33308Thành viên khác đang dùng, không thể tắt nguồnHãy thử lại khi thành viên kia giải phóng máy
33309Thành viên khác đang dùng, không thể kết nốiHãy thử lại khi thành viên kia giải phóng máy
33315Tài khoản đang nợ phí, Cloud Phone bị đóng băngHãy nạp tiền vào ví
33316Không đủ profile khả dụngHãy nâng cấp gói
33317Quyền với profile đã bị thu hồiHãy nhờ quản trị viên cấp quyền truy cập
33318Số dư không đủ để bật máyHãy nạp tiền vào ví
33321Profile không khả dụngHãy kiểm tra trạng thái profile trước khi thử lại
33322Đang kiểm tra proxyHãy hỏi vòng cho đến khi việc kiểm tra hoàn tất
33323Profile đang khởi độngHãy đợi khởi động xong; đừng gửi lại
33324Profile đã đang chạyKhông cần làm gì
33325Profile đã bị vô hiệu hóaHãy kích hoạt lại trước khi dùng
33331Đang đổi thiết bị một cú nhấp, không thể tắt nguồnHãy đợi hoàn tất
33332Đang khởi động lại, không thể tắt nguồnHãy đợi hoàn tất
33333Đang khôi phục cài đặt, không thể tắt nguồnHãy đợi hoàn tất
33338–33345Thiếu hoặc không hợp lệ quốc gia, múi giờ, ngôn ngữ, kinh độ hoặc vĩ độXem bảng quốc gia và múi giờ
33346SKU đã ngừng bánHãy chọn một skuId khác
33347Dòng máy này yêu cầu client Windows bản mới nhấtHãy cập nhật client desktop của MoreLogin
33367Đang bảo trì, không thể bật máyHãy xem thông báo hệ thống để biết thời điểm khôi phục
33376Kỳ tính phí theo tháng đã hếtHãy gia hạn đăng ký
33398–33400Kinh độ, vĩ độ hoặc độ cao ngoài phạm viKinh độ −180…180, vĩ độ −90…90, độ cao −50000…100000
33401Cloud Phone không hỗ trợ tác vụ nàyHãy dùng dòng máy được hỗ trợ
33407Vượt hạn mức gói chạy song songHãy đợi có suất trống hoặc tăng hạn mức
33408Định dạng số điện thoại không hợp lệBắt đầu bằng +, mã quốc gia 1–3 chữ số không gồm 86, tổng cộng 8–14 chữ số
33418Tệp phát trực tiếp không tồn tại hoặc không hợp lệHãy tải lên với uploadType=2 và dùng fileId được trả về
33419Định dạng tệp phát trực tiếp không được hỗ trợHãy tải lên tệp MP4 qua /cloudphone/uploadFile
33005Cài đặt ứng dụng thất bạiHãy thử lại và kiểm tra dung lượng lưu trữ trên thiết bị
33014Tác vụ quá thường xuyênHãy chờ theo backoff rồi thử lại
33714Ứng dụng không tồn tại hoặc đã bị gỡ khỏi khoHãy làm mới thư viện ứng dụng
33814Mẫu RPA không tồn tạiHãy liệt kê lại các mẫu và dùng templateId hiện tại
33818Định dạng tham số mẫu RPA không hợp lệHãy gửi templateParameter dưới dạng chuỗi JSON đã escape
33303Tạo Cloud Phone thất bạiHãy truy vấn /cloudphone/page trước khi thử lại; đừng gửi lại mù quáng
33320Proxy gán cho Cloud Phone này đã bị xóaHãy gán lại proxy bằng /cloudphone/setProxy
33326Thành viên khác đang dùng, không thể thay thiết bịHãy thử lại khi thành viên kia giải phóng máy
33350Không bật được ADB trên một số Cloud PhoneNhững máy đó không đang chạy hoặc không hỗ trợ ADB; hãy đọc lại trạng thái và chỉ thử lại với chúng
33507Tệp không tồn tại trên thiết bịHãy kiểm tra đường dẫn; yêu cầu tải về sẽ quét thư mục cha trước khi truyền
33354Không tìm thấy ứng dụng nhómKiểm tra ID trong danh sách nhóm.
33357Cần nhóm được cấp quyềnKhi isAll=false, cung cấp ID nhóm hợp lệ không rỗng.
33368Phiên bản không khả dụng hoặc đã được chọnChọn phiên bản khả dụng khác cùng tên gói.
33369Đã đạt giới hạn ứng dụng cài sẵnTắt ứng dụng cài sẵn khác trước.
33370Gói này không được bật ROOTGiữ enableRoot=false.
33423Không có điện thoại đã bật đủ điều kiện trong phạm viKiểm tra nguồn, phạm vi, quyền và onlyStartedByMe.
33424Tối đa ba ứng dụng được giữ hoạt độngTắt giữ hoạt động của ứng dụng khác trước.

Các tác vụ cài đặt và bật/tắt nguồn còn có thể trả về một mã do dịch vụ thiết bị đối chiếu, thuộc các khoảng 33001–33033, 33500–33520, 33700–33724 hoặc 33900–33910. Mã nào có thể xảy ra phụ thuộc vào dịch vụ thiết bị đang phục vụ thiết bị, nên các endpoint không liệt kê riêng từng mã.

Profile trình duyệt (19xxx)

MãMô tảCách xử lý
19001Tên profile đã tồn tạiHãy chọn một tên duy nhất, hoặc bỏ trống envName để hệ thống tự sinh
19002Việc tạo profile thất bại ở phía dướiHãy xác nhận bằng /env/page trước khi thử lại
19004Định dạng user agent không hợp lệHãy gửi advancedSetting.ua có thể phân tích được
19005Định dạng cookie không hợp lệHãy gửi cookies dưới dạng chuỗi mảng JSON đã escape
19039Không tìm thấy profileHãy kiểm tra envId / uniqueId và xem nó có thuộc nhóm của bạn không
19063Đã đạt giới hạn số lượng profileHãy xóa profile hoặc nâng cấp gói
19064Không có quyền với nhóm nàyHãy nhờ quản trị viên cấp quyền truy cập nhóm
19065Không có quyền với profile nàyHãy nhờ quản trị viên cấp quyền truy cập profile
19099Không đủ profile khả dụng, việc sử dụng bị hạn chếHãy nâng cấp gói
19100ID nền tảng không hợp lệHãy dùng platformId do /system/platform/list trả về
19101ID site không hợp lệHãy dùng siteId do /system/platform/list trả về
19102URL nền tảng tùy chỉnh không được để trốngHãy gửi platformUrl khi platformId là 9999
19103Định dạng URL mở tự động không hợp lệHãy gửi các URL tuyệt đối hợp lệ trong afterStartupConfig
19104ID nhóm không hợp lệHãy dùng một nhóm đang tồn tại trong nhóm làm việc của bạn
19105ID thẻ không hợp lệHãy dùng các thẻ đang tồn tại trong nhóm của bạn
19106ID proxy không hợp lệHãy dùng một proxy đang tồn tại trong nhóm của bạn, hoặc bỏ trống proxyId
19107Phiên bản kernel trình duyệt không hợp lệHãy chọn một phiên bản từ /env/advanced/ua/versions
19108Phiên bản user agent không hợp lệHãy chọn một phiên bản từ /env/advanced/ua/versions
19109Phiên bản user agent không khớp với user agentHãy để uaVersion khớp với advancedSetting.ua, hoặc chỉ gửi một trong hai
19110Định dạng URL tùy chỉnh không hợp lệHãy gửi một URL tuyệt đối hợp lệ
19111Firefox chỉ hỗ trợ Windows và macOSHãy chọn Windows hoặc macOS, hoặc chuyển sang Chrome
19112Chưa thiết lập khóa mã hóa, không thể bật mã hóa profileHãy cấu hình khóa mã hóa cho nhóm, hoặc gửi isEncrypt=0
19141Giới hạn 100 ký tự, chỉ gồm chữ số, chữ cái và dấu cáchHãy rút ngắn accountInfo.otpSecret và bỏ các ký tự khác
19142Không thể sửa profile được mã hóa đầu-cuốiHãy dùng client MoreLogin cho các profile đã mã hóa
19143Phiên bản client quá cũ so với kernelHãy cập nhật client desktop của MoreLogin
19147Vượt giới hạn tạo trong ngàyHãy nâng cấp gói để tăng giới hạn
19149Chưa chọn loại cache nàoHãy chọn ít nhất một loại cache cần xóa
19159Hệ điều hành không khớp với thiết lập nâng caoKhông thể đổi hệ điều hành khi cập nhật; hãy giữ advancedSetting.os như đã lưu
19160Loại trình duyệt không khớp với thiết lập nâng caoKhông thể đổi trình duyệt khi cập nhật; hãy giữ advancedSetting.vendor như đã lưu
19175Tọa độ ngoài vùng phục vụHãy chọn tọa độ trong vùng được hỗ trợ
19193Bên chia sẻ đã tắt quyền chỉnh sửa profile nàyHãy nhờ chủ sở hữu cho phép chỉnh sửa
19173Cung cấp envIds hoặc uniqueIds không rỗngCung cấp envIds hoặc uniqueIds không rỗng

Cloud Storage (39xxx)

MãMô tảCách xử lý
39001Không tìm thấy thông tin cloud storageHãy kiểm tra xem nhóm đã được cấp cloud storage chưa
39011Không tìm thấy tệpHãy kiểm tra ID tệp
39014URL truy cập tệp đang trốngHãy đăng ký lại lượt tải lên
39037Tham số phần mở rộng tệp không hợp lệHãy gửi một phần mở rộng được hỗ trợ
39041Đã đạt hạn mức lưu trữHãy xóa tệp để giải phóng dung lượng
39044Tên tệp bị trùngHãy đổi tên tệp
39045Quá nhiều lượt tải lên đã ký trước đang chờHãy hoàn tất hoặc bỏ các lượt tải lên đang chờ trước
39046Tệp chưa được tải lên thành côngHãy tải tệp lên URL đã ký trước rồi mới gọi complete
39047Cloud storage đã hết hạnHãy gia hạn cloud storage
39048Không tìm thấy thẻ cloud storageHãy dùng một thẻ do /cloudstorage/tag/all trả về
39049ID thẻ không được để trốngHãy gửi ít nhất một thẻ; mảng rỗng sẽ bị từ chối
39050Tên tệp dài hơn 60 ký tựHãy rút ngắn tên
39051Kích thước tệp phải lớn hơn 0 B và nhỏ hơn 2 GBHãy chia nhỏ hoặc nén tệp

Proxy (14xxx) và ví (20xxx)

MãMô tảCách xử lý
14003Cập nhật proxy thất bại, hoặc proxy không tồn tạiHãy kiểm tra ID proxy
14017Không thể xóa proxyProxy nền tảng cloud chưa hết hạn thì không xóa được; hãy đợi tới khi hết hạn
14023Loại proxy không tồn tạiHãy dùng một giá trị dịch vụ thiết bị được hỗ trợ
14024Proxy không tồn tạiHãy kiểm tra các ID proxy
14519Không thể sửa thông tin proxy độngHãy quản lý proxy động ngoài các endpoint proxy
20018Không đọc được giá sản phẩmHãy thử lại sau và cung cấp requestId cho bộ phận hỗ trợ
20029Tài khoản ví không khả dụngHãy kiểm tra ví của nhóm
20032Truy vấn số dư thất bạiHãy thử lại sau và cung cấp requestId cho bộ phận hỗ trợ
20041Số dư không đủHãy nạp tiền vào ví

Runtime của Cloud Browser (40xxx)

Do /cloudbrowser/start, /cloudbrowser/stop và /cloudbrowser/connect trả về. Những mã phát sinh sau khi yêu cầu khởi động đã được điều phối sẽ hiện ra ở /cloudbrowser/page, không phải trong phản hồi khởi động.

MãMô tảCách xử lý
40001Cloud browser đã đang chạyKhông cần làm gì; hãy kết nối tới lượt chạy hiện có
40002Không thể dừng cloud browser ở trạng thái hiện tạiHãy đọc lại /cloudbrowser/page rồi thử lại
40003Kiểm tra proxy thất bạiHãy xác nhận proxy đã gán có thể kết nối được
40006Tác vụ cloud browser thất bạiHãy thử lại; nếu việc lưu trữ thất bại, xem cloudBrowserArchiveStatus
40008Không tìm thấy cloud browser nào đang chạyHãy khởi động một cái trước, hoặc đọc lại /cloudbrowser/page
40009Không thể kết nối tới lượt chạy do thành viên khác khởi độngHãy nhờ thành viên đó giải phóng nó
40010Kết nối tới cloud browser thất bạiHãy thử lại; không phát hành được token truy cập desktop
40015Profile chưa được gán proxyHãy gán proxy trước bằng /env/setProxy/batch
40016Không điều phối được yêu cầu khởi độngHãy thử lại
40020Cloud browser đang được dừngHãy đợi quá trình dừng hoàn tất
40021Cloud browser đã đang khởi độngĐừng gửi lại; hãy hỏi vòng /cloudbrowser/page
40023Profile đang được sử dụngHãy đóng phiên còn lại trước
40024Cloud browser không khởi động kịp thờiHãy khởi động lại
40025Proxy đã gán không còn tồn tạiHãy gán lại proxy
40026Proxy đã gán đã hết hạnHãy gia hạn hoặc thay proxy
40027Proxy đã gán vẫn đang được cấp phátHãy thử lại khi việc cấp phát hoàn tất
40028Không hỗ trợ proxy cục bộHãy dùng một proxy không phải cục bộ
40029Không hỗ trợ loại proxy nàyHãy dùng một loại proxy được hỗ trợ
40037Profile mã hóa đầu-cuối không dùng được cloud browserHãy dùng một profile không mã hóa

Webhook (41xxx)

Được trả về bởi các endpoint cấu hình webhook khi URL callback bị từ chối.

MãMô tảCách xử lý
41001URL callback phải là địa chỉ HTTPS hợp lệHãy gửi URL HTTPS dài tối đa 1024 ký tự, không chứa thông tin người dùng hay fragment, cổng hợp lệ, và bảo đảm mọi địa chỉ mà nó phân giải ra đều định tuyến được trên internet

Xác thực API (35xxx) và nhóm (12xxx)

MãMô tảCách xử lý
12002Nhóm không tồn tạiNhóm của thành viên đã bị xóa; hãy liên hệ bộ phận hỗ trợ
35002Xác thực API thất bạiHãy kiểm tra client_id (API ID) và client_secret (API key)
35005Yêu cầu không có quyền thực hiệnThành viên đã bị vô hiệu hóa, hoặc IP gọi không vượt qua danh sách IP cho phép và chặn của Open API

Mã trạng thái HTTP

Trạng tháiMô tả
200Yêu cầu đã được xử lý (xem trường code để biết kết quả nghiệp vụ)
401Không được xác thực — access token không hợp lệ hoặc đã hết hạn
403Bị từ chối — không đủ quyền
429Quá nhiều yêu cầu — đã vượt giới hạn tần suất
500Lỗi nội bộ của server — hãy liên hệ hỗ trợ

Gateway ứng dụng hiện tại biểu diễn việc từ chối do giới hạn tần suất của chính nó bằng mã nghiệp vụ 35000 và không đặt HTTP 429 một cách tường minh. Một proxy biên hoặc phiên bản gateway trong tương lai vẫn có thể trả về 429, nên client nên xử lý cả hai dạng.


Ngữ nghĩa thử lại và phục hồi

Loại lỗiCó thử lại?Hành vi client bắt buộc
Lỗi kiểm tra dữ liệu, quyền, số dư hoặc tính năng không được hỗ trợKhôngHãy sửa yêu cầu, quyền, số dư hoặc tài nguyên đã chọn trước khi thử lại
Giới hạn tần suất (35000)Có, có điều kiệnChờ theo cơ chế backoff kèm jitter; kiểm tra code trong phần thân ngay cả khi trạng thái HTTP là 200
Lỗi tạm thời của server hoặc dịch vụ thiết bịCó, có điều kiệnCó thể thử lại các lệnh đọc; với lệnh ghi, hãy truy vấn trạng thái tài nguyên hoặc tác vụ trước
Tác vụ không đồng bộ đã được tiếp nhậnĐừng gửi lại ngayHãy hỏi vòng endpoint trạng thái được ghi trong tài liệu cho đến khi thành công, thất bại hoặc hết thời gian chờ
Không rõ kết quả sau khi hết thời gian chờ mạngKiểm tra trạng thái trướcĐừng lặp lại một cách mù quáng việc tạo, mua, đăng ký tải lên hay tạo lịch

API công khai hiện chưa có header khóa idempotency dùng chung. Vì vậy, việc truy vấn trạng thái theo từng endpoint là một phần của quy trình phục hồi an toàn cho các yêu cầu làm thay đổi trạng thái.

Với tác vụ không đồng bộ, phản hồi code: 0 có thể nghĩa là «đã tiếp nhận», không phải «đã hoàn tất». Hãy theo tài liệu của endpoint để biết trường trạng thái và các trạng thái kết thúc của nó.

Xem bảng thử lại và hoàn tất theo endpoint để biết mọi endpoint, và Tác vụ không đồng bộ để biết quy trình hỏi vòng cùng các trạng thái kết thúc.


Mẹo: hãy luôn kèm requestId trong phản hồi khi liên hệ hỗ trợ để việc chẩn đoán nhanh hơn.