Tài liệu · Tham chiếu
Mã lỗi
Một bảng chung cho mọi SDK chính thức, thư viện C và công cụ dòng lệnh: mỗi mã kèm một câu cho người dùng phần mềm của bạn và việc bạn nên làm
Đọc một lỗi
Mọi lỗi đều mang một mã trong bảng này. Mã HTTP là của API, hoặc 0 khi không nhận được câu trả lời nào (mất mạng, quá chậm, câu trả lời không đọc được).
Thử lại nghĩa là để một lúc rồi gọi lại, không đổi gì, có thể thành công. Các mã khác cần thay đổi gì đó: key khác, gia hạn, cập nhật, hay một thiết lập trong dashboard.
C là số mà thư viện C trả cho mã đó (clavis_errors.h); số này không bao giờ đổi.
SDK nào cũng trả câu cho người dùng cuối bằng tiếng Việt hoặc tiếng Anh, bạn hiện thẳng được:
- JavaScripterr.userMessage("vi")
- Pythonerr.user_message("vi")
- C#e.UserMessage("vi")
- C++e.user_message("vi")
- Goe.UserMessage("vi")
- Rusterr.user_message("vi")
- Javae.userMessage("vi")
- Cclavis_error_message(client, "vi")
- CLI--lang vi, error.message
License key
invalid_keyHTTP 403 · C 1
- Người dùng phần mềm thấy
- License key không hợp lệ · kiểm tra lại key bạn nhận được
- Bạn nên làm
- Chỉ client giao thức cũ (CLV1.0) nhận mã này. CLV1.1, giao thức của mọi SDK chính thức, trả invalid_credentials để không ai dò được key
license_expiredHTTP 403 · C 2
- Người dùng phần mềm thấy
- License đã hết hạn · gia hạn để tiếp tục dùng phần mềm
- Bạn nên làm
- Gia hạn license trong dashboard, hoặc gửi khách tới cổng khách hàng để tự gia hạn
license_suspendedHTTP 403 · C 3
- Người dùng phần mềm thấy
- License đang bị tạm khoá · liên hệ người bán
- Bạn nên làm
- Bạn hoặc một quy tắc đã tạm khoá license này. Mở lại trong dashboard khi đã xử lý xong
license_revokedHTTP 403 · C 4
- Người dùng phần mềm thấy
- License đã bị thu hồi · liên hệ người bán
- Bạn nên làm
- License đã thu hồi không dùng lại được. Cấp key mới nếu khách vẫn được dùng
license_already_registeredHTTP 409 · C 5
- Người dùng phần mềm thấy
- Key này đã gắn với một tài khoản khác
- Bạn nên làm
- Mỗi key thuộc một tài khoản. Xem tài khoản đang giữ key ở mục Người dùng, hoặc cấp key khác
already_redeemedHTTP 409 · C 6
- Người dùng phần mềm thấy
- Key này đã có trong tài khoản của bạn
- Bạn nên làm
- Không cần làm gì: tài khoản đã giữ key này. Phần mềm nên coi như thành công
test_key_disabledHTTP 403 · C 56
- Người dùng phần mềm thấy
- Đây là key thử nghiệm và phần mềm đã bán chính thức · dùng license key bạn đã mua
- Bạn nên làm
- Key TEST ngừng hoạt động khi app được đánh dấu phát hành công khai (Cài đặt app). Cấp key thường
Thiết bị
device_limitHTTP 403 · C 7
- Người dùng phần mềm thấy
- License đã dùng trên số máy tối đa · hãy trả một máy trước
- Bạn nên làm
- Tăng số máy trong chính sách, gỡ máy cũ trong dashboard, hoặc cho khách chuyển máy từ máy cũ
device_blockedHTTP 403 · C 8
- Người dùng phần mềm thấy
- Máy này đã bị chặn · liên hệ người bán
- Bạn nên làm
- Bạn hoặc Protect đã chặn máy này với app. Bỏ chặn ở mục Thiết bị nếu chặn nhầm
device_revokedHTTP 403 · C 9
- Người dùng phần mềm thấy
- Máy này đã bị gỡ khỏi license · hãy kích hoạt lại
- Bạn nên làm
- Máy đã bị gỡ (do bạn, do chuyển máy, hoặc im lặng quá lâu). Kích hoạt lại sẽ dùng một suất trống
transfer_limitedHTTP 429 · Thử lại: có · C 10
- Người dùng phần mềm thấy
- License vừa chuyển máy gần đây · thử lại sau
- Bạn nên làm
- Chính sách giới hạn số lần chuyển máy mỗi tháng và khoảng nghỉ giữa hai lần; câu lỗi ghi lúc được chuyển lại. Bạn có thể tự chuyển máy cho khách trong dashboard
transfer_not_allowedHTTP 429 · C 11
- Người dùng phần mềm thấy
- License này không tự chuyển sang máy khác được · liên hệ người bán
- Bạn nên làm
- Chính sách không cho khách tự chuyển máy. Cho phép trong chính sách, hoặc chuyển giúp khách trong dashboard
Phiên
session_device_mismatchHTTP 401 · C 12
- Người dùng phần mềm thấy
- Phiên thuộc về máy khác · hãy đăng nhập lại
- Bạn nên làm
- Mã phiên bị chép sang máy khác. Mở phiên mới trên máy này (activate hoặc login)
session_requiredHTTP 401 · C 13
- Người dùng phần mềm thấy
- Hãy đăng nhập hoặc kích hoạt trước
- Bạn nên làm
- Gọi activate, login hoặc trial trước heartbeat, variables hay check_updates
session_expiredHTTP 401 · C 14
- Người dùng phần mềm thấy
- Phiên đã hết · hãy đăng nhập lại
- Bạn nên làm
- Phiên hết sau một giờ không có heartbeat. Gửi heartbeat vài phút một lần khi phần mềm chạy, và mở phiên mới khi gặp mã này
session_limitHTTP 403 · C 15
- Người dùng phần mềm thấy
- License đang chạy ở số nơi tối đa · hãy tắt ở nơi khác trước
- Bạn nên làm
- Chính sách giới hạn số phiên chạy cùng lúc. Tăng giới hạn, hoặc để phiên cũ kết thúc (logout kết thúc ngay)
Tài khoản
invalid_credentialsHTTP 403 · C 16
- Người dùng phần mềm thấy
- Key hoặc thông tin đăng nhập không đúng · kiểm tra lại rồi thử lại
- Bạn nên làm
- Sai tên đăng nhập hoặc mật khẩu, hoặc key không tồn tại, bị khoá, thu hồi hay hết hạn: CLV1.1 trả chung một câu để không ai dò được key, trừ khi máy này đang giữ suất trên license. Tra key trong dashboard; sai nhiều lần liền thì máy bị làm chậm (too_many_attempts)
username_takenHTTP 409 · C 17
- Người dùng phần mềm thấy
- Tên đăng nhập đã có người dùng · chọn tên khác
- Bạn nên làm
- Cho người dùng nhập tên khác trong form đăng ký
user_bannedHTTP 403 · C 18
- Người dùng phần mềm thấy
- Tài khoản đã bị cấm · liên hệ người bán
- Bạn nên làm
- Bạn đã cấm người dùng này. Bỏ cấm ở mục Người dùng nếu cần
user_limitHTTP 403 · Thử lại: có · C 19
- Người dùng phần mềm thấy
- Hiện không nhận thêm tài khoản · thử lại sau
- Bạn nên làm
- App đã chạm giới hạn người dùng của gói. Nâng gói hoặc xoá tài khoản không dùng
no_licenseHTTP 403 · C 20
- Người dùng phần mềm thấy
- Tài khoản chưa có license · hãy nhập key
- Bạn nên làm
- Tài khoản đã đăng nhập nhưng chưa có key. Hỏi key rồi gọi redeem
account_requiredHTTP 403 · C 21
- Người dùng phần mềm thấy
- Hãy đăng nhập tài khoản trước
- Bạn nên làm
- redeem cần phiên mở bằng login hoặc register, không phải bằng key
mode_not_allowedHTTP 403 · C 22
- Người dùng phần mềm thấy
- Phần mềm này không cho đăng nhập theo cách này
- Bạn nên làm
- Chế độ đăng nhập của app (key, tài khoản, hoặc tài khoản kèm key) không cho lệnh này. Đổi chế độ ở Xác thực & gói, hoặc gọi đúng hàm
too_many_attemptsHTTP 429 · Thử lại: có · C 23
- Người dùng phần mềm thấy
- Sai quá nhiều lần · chờ vài phút rồi thử lại
- Bạn nên làm
- Nhập sai key hoặc mật khẩu nhiều lần từ máy này sẽ bị làm chậm một lúc. Hiện thông báo và để người dùng chờ
Dùng thử
trial_usedHTTP 409 · C 24
- Người dùng phần mềm thấy
- Máy này đã dùng thử rồi · nhập key để tiếp tục
- Bạn nên làm
- Mỗi máy chỉ dùng thử một lần cho mỗi app. Đặt liên kết mua ngay chỗ này
trial_expiredHTTP 403 · C 25
- Người dùng phần mềm thấy
- Hết thời gian dùng thử · nhập key để tiếp tục
- Bạn nên làm
- Hiện liên kết mua, rồi kích hoạt key khách mua
trial_deniedHTTP 403 · C 27
- Người dùng phần mềm thấy
- Không thể dùng thử trên máy này
- Bạn nên làm
- Protect từ chối dùng thử (ví dụ máy có dấu hiệu đặt lại hoặc máy ảo). Xem trang Protect của app
Ứng dụng
app_not_foundHTTP 404 · C 28
- Người dùng phần mềm thấy
- Phần mềm chưa được cấu hình đúng · liên hệ người bán
- Bạn nên làm
- App id sai hoặc app đã bị xoá. Chép lại từ trang Kết nối của app
app_pausedHTTP 403 · Thử lại: có · C 29
- Người dùng phần mềm thấy
- Phần mềm tạm thời không dùng được · thử lại sau
- Bạn nên làm
- App đang tạm dừng (do bạn, hoặc cả workspace). Chạy lại trong dashboard; xem thông báo từ ClavisAUH
maintenanceHTTP 503 · Thử lại: có · C 30
- Người dùng phần mềm thấy
- Đang bảo trì · sẽ trở lại sớm
- Bạn nên làm
- Bạn đã bật chế độ bảo trì cho app; câu bạn viết nằm trong lỗi. Tắt ở cài đặt app
access_blockedHTTP 403 · C 31
- Người dùng phần mềm thấy
- Truy cập bị chặn từ vị trí hoặc máy này
- Bạn nên làm
- Một quy tắc truy cập (quốc gia, IP, thiết bị) hoặc Protect đã chặn. Xem Kiểm soát truy cập và Protect
Cập nhật và bản build
update_requiredHTTP 426 · C 32
- Người dùng phần mềm thấy
- Hãy cập nhật phần mềm để tiếp tục dùng
- Bạn nên làm
- Bạn đặt phiên bản tối thiểu cao hơn bản này. Mời cập nhật (check_updates trả link tải có ký)
build_blockedHTTP 403 · C 33
- Người dùng phần mềm thấy
- Phiên bản này không còn được dùng · hãy cập nhật
- Bạn nên làm
- Bạn đã chặn bản phát hành này. Khách cần bản mới hơn
unknown_buildHTTP 403 · C 34
- Người dùng phần mềm thấy
- Bản phần mềm này không được nhận diện · tải lại từ người bán
- Bạn nên làm
- Kiểm tra bản build nghiêm ngặt đang bật và mã build này chưa từng phát hành. Phát hành bản này, hoặc đặt buildHash đúng giá trị đã phát hành
invalid_manifestSDK tự tạo trên máy · C 53
- Người dùng phần mềm thấy
- Không xác minh được bản cập nhật · đã không cài
- Bạn nên làm
- Manifest bản phát hành không ký bằng khoá của app này. Không được cài; kiểm tra khoá app mà bản build liệt kê
download_failedSDK tự tạo trên máy · Thử lại: có · C 54
- Người dùng phần mềm thấy
- Không tải được bản cập nhật · thử lại
- Bạn nên làm
- Nơi chứa file trả lỗi. Mã HTTP nằm trong lỗi; link trong manifest hết hạn sau một lúc, hãy gọi lại check_updates
checksum_mismatchSDK tự tạo trên máy · Thử lại: có · C 55
- Người dùng phần mềm thấy
- Bản cập nhật tải về bị hỏng · đã không cài
- Bạn nên làm
- File không khớp SHA-256 trong manifest đã ký. Tải lại; nếu lặp lại, file trên máy chủ đã bị thay
Yêu cầu (tích hợp)
missing_headersHTTP 400 · C 35
- Người dùng phần mềm thấy
- Phần mềm không gọi đúng máy chủ license · liên hệ người bán
- Bạn nên làm
- Yêu cầu thiếu header CLV1. Dùng SDK chính thức, hoặc theo /docs/protocol nếu tự viết client
bad_signatureHTTP 401 · C 36
- Người dùng phần mềm thấy
- Phần mềm không xác minh được danh tính · cài lại hoặc liên hệ người bán
- Bạn nên làm
- Chữ ký của máy không đúng: file khoá thiết bị hỏng, proxy sửa nội dung, hoặc client bị chỉnh. Protect có ghi lại
clock_skewHTTP 401 · Thử lại: có · C 37
- Người dùng phần mềm thấy
- Đồng hồ máy bị lệch · hãy chỉnh lại ngày giờ
- Bạn nên làm
- SDK tự chỉnh giờ và thử lại một lần; còn gặp mã này nghĩa là đồng hồ lệch nhiều hoặc nhảy liên tục
invalid_nonceHTTP 400 · C 38
- Người dùng phần mềm thấy
- Phần mềm gửi yêu cầu sai dạng · liên hệ người bán
- Bạn nên làm
- Nonce phải dài 16 đến 64 ký tự an toàn cho URL. Chỉ client tự viết mới gặp
replayed_requestHTTP 409 · Thử lại: có · C 39
- Người dùng phần mềm thấy
- Yêu cầu bị từ chối vì lặp lại · thử lại
- Bạn nên làm
- Cùng một yêu cầu đã ký đến hai lần. Lần thử mới có nonce mới; lặp nhiều có thể là ai đó phát lại lưu lượng (Protect có ghi)
invalid_encodingHTTP 400 · C 40
- Người dùng phần mềm thấy
- Phần mềm gửi yêu cầu sai dạng · liên hệ người bán
- Bạn nên làm
- Khoá và chữ ký phải là base64url không có đệm. Chỉ client tự viết mới gặp
invalid_jsonHTTP 400 · C 41
- Người dùng phần mềm thấy
- Phần mềm gửi yêu cầu sai dạng · liên hệ người bán
- Bạn nên làm
- Nội dung không phải JSON hợp lệ. Chỉ client tự viết mới gặp
validation_failedHTTP 400 · C 42
- Người dùng phần mềm thấy
- Thiếu thông tin hoặc thông tin không hợp lệ · kiểm tra lại dữ liệu đã nhập
- Bạn nên làm
- Thiếu trường hoặc giá trị ngoài giới hạn (ví dụ tên đăng nhập quá ngắn). Câu lỗi ghi tên trường
Kiểm chứng câu trả lời
unsigned_responseSDK tự tạo trên máy · Thử lại: có · C 49
- Người dùng phần mềm thấy
- Không xác minh được câu trả lời của máy chủ license · thử lại sau
- Bạn nên làm
- Câu trả lời không có chữ ký: có thứ ở giữa (proxy, máy chủ giả) trả lời. Coi như không có câu trả lời; SDK báo cho Protect
unknown_keySDK tự tạo trên máy · C 50
- Người dùng phần mềm thấy
- Không xác minh được câu trả lời của máy chủ license · hãy cập nhật phần mềm
- Bạn nên làm
- Câu trả lời ký bằng khoá phần mềm không biết. Khi đổi khoá app, phát hành bản có khoá mới trước rồi mới chuyển
invalid_response_signatureSDK tự tạo trên máy · C 51
- Người dùng phần mềm thấy
- Không xác minh được câu trả lời của máy chủ license · thử lại sau
- Bạn nên làm
- Chữ ký không khớp câu trả lời: bị sửa trên đường đi hoặc giả mạo. Coi như không có câu trả lời; SDK báo cho Protect
stale_responseSDK tự tạo trên máy · Thử lại: có · C 52
- Người dùng phần mềm thấy
- Câu trả lời của máy chủ license đã cũ · kiểm tra đồng hồ rồi thử lại
- Bạn nên làm
- Câu trả lời quá cũ hoặc quá mới so với yêu cầu (phát lại, hoặc đồng hồ lệch nhiều). Thử lại khi đồng hồ đúng
Mạng và máy chủ
rate_limitedHTTP 429 · Thử lại: có · C 43
- Người dùng phần mềm thấy
- Quá nhiều yêu cầu · chờ một lát rồi thử lại
- Bạn nên làm
- Địa chỉ này gọi quá nhiều. Đừng gửi heartbeat dày hơn mỗi phút, và giãn thời gian trước khi thử lại
internal_errorHTTP 500 · Thử lại: có · C 44
- Người dùng phần mềm thấy
- Máy chủ license gặp sự cố · thử lại sau ít phút
- Bạn nên làm
- Lỗi phía chúng tôi. Thử lại với khoảng chờ tăng dần; trong lúc đó dùng offline token còn hạn. Mã yêu cầu trong câu lỗi giúp hỗ trợ tra cứu
network_errorSDK tự tạo trên máy · Thử lại: có · C 45
- Người dùng phần mềm thấy
- Không kết nối được máy chủ license · kiểm tra kết nối mạng
- Bạn nên làm
- Không nhận được câu trả lời (mất mạng, DNS, tường lửa, TLS). Thử lại sau; offline token còn hạn giúp phần mềm vẫn chạy
timeoutSDK tự tạo trên máy · Thử lại: có · C 46
- Người dùng phần mềm thấy
- Máy chủ license trả lời quá lâu · thử lại
- Bạn nên làm
- Yêu cầu vượt thời gian chờ của SDK. Thử lại; tăng tuỳ chọn timeout nếu mạng rất chậm
invalid_responseSDK tự tạo trên máy · Thử lại: có · C 47
- Người dùng phần mềm thấy
- Máy chủ license trả về dữ liệu không đọc được · thử lại
- Bạn nên làm
- Câu trả lời không phải JSON, thường do proxy hoặc trang đăng nhập Wi-Fi. Kiểm tra base_url trỏ đúng API
unknown_errorSDK tự tạo trên máy · Thử lại: có · C 48
- Người dùng phần mềm thấy
- Có lỗi xảy ra · thử lại
- Bạn nên làm
- Máy chủ từ chối mà không kèm mã (proxy hoặc gateway cũ ở giữa). Mã HTTP nằm trong lỗi
Cách các mã đi trên đường truyền nằm trong đặc tả giao thức CLV1