Request Errors

Lỗi yêu cầu

Lỗi API Lớp học có thể chứa một mã lỗi để giúp bạn xác định nguyên nhân và xử lý lỗi đúng cách. Tuỳ thuộc vào mã, bạn có thể thử lại yêu cầu hoặc hướng người dùng thực hiện một số hành động nhất định.

Trang này nêu chi tiết các mã lỗi có thể xảy ra, được nhóm theo mã HTTP. Để đọc thêm về cấu trúc của thông báo lỗi, hãy tham khảo phần Cấu trúc thông báo lỗi.

Trang này nêu chi tiết các mã lỗi có thể xảy ra, được nhóm theo mã HTTP. Hãy xem tài liệu tham khảo để xác định phương thức trả về bất kỳ mã lỗi cụ thể nào.

HTTP 400: FAILED_PRECONDITION

FAILED_PRECONDITION được trả về khi người dùng thực hiện một hành động không thể cho phép, vì người dùng đã đạt đến giới hạn hoặc trạng thái của ứng dụng, chẳng hạn như CourseNotModifiable. Để khắc phục FAILED_PRECONDITION, hãy hướng dẫn người dùng thực hiện thao tác rồi thử lại. Hoặc trong một số trường hợp, bạn có thể sử dụng các điểm cuối thay thế để sửa trạng thái thay cho người dùng.

PendingInvitationExists

PendingInvitationExists cho biết một người đã được mời nắm quyền sở hữu khoá học. Lỗi này xảy ra trong quá trình chuyển quyền sở hữu khoá học khi yêu cầu chuyển quyền sở hữu đã được bắt đầu trước đó nhưng chưa được chủ sở hữu mới chấp nhận.

CourseMemberLimitReached

CourseMemberLimitReached cho biết hành động đã thử sẽ vượt quá số lượng thành viên khoá học tối đa được cho phép. students.create() thường trả về mã này. Để biết thêm thông tin, hãy tham khảo phần "Giới hạn quy mô lớp học" trong bài viết Mời học viên tham gia lớp học trên trung tâm trợ giúp.

Hành động có thể áp dụng: Mô tả nguyên nhân không thành công và gợi ý người dùng xoá các thành viên không cần thiết trong khoá học

CourseNotModifiable

CourseNotModifiable cho biết khoá học liên quan đang ở trạng thái không cho phép sửa đổi các thuộc tính của khoá học (ngoài trạng thái của khoá học).

Hành động có thể xảy ra: Nhắc người dùng thay đổi khoá học sang trạng thái khoá học có thể sửa đổi. Để thay đổi trạng thái, hãy sử dụng courses.patch(). Bạn có thể thay đổi trạng thái khoá học trong yêu cầu làm thay đổi các thuộc tính khác.

CourseTeacherLimitReached

CourseTeacherLimitReached cho biết rằng hành động được yêu cầu sẽ vượt quá số lượng giáo viên khoá học tối đa được phép. Mã này thường được teachers.create() trả về. Để biết thêm thông tin, hãy tham khảo phần "Giới hạn quy mô lớp học" trong bài viết Thêm người cùng dạy vào lớp học trên trung tâm trợ giúp.

Hành động có thể áp dụng: Mô tả nguyên nhân không thành công và gợi ý người dùng loại bỏ những giáo viên của khoá học không cần thiết. Nếu phù hợp với ứng dụng của mình, bạn có thể sử dụng teachers.delete() để thay mặt người dùng quản lý danh sách giáo viên.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached cho biết người dùng này đã là thành viên trong số lượng nhóm tối đa được phép và không thể tham gia bất kỳ khoá học nào. Mã này thường được students.create() hoặc teachers.create() trả về. Để biết thêm thông tin, hãy tham khảo phần "Giới hạn quy mô lớp học" trong bài viết Mời học viên tham gia lớp học trên trung tâm trợ giúp.

Hành động có thể xảy ra: Mô tả nguyên nhân thất bại và gợi ý rằng người dùng rời khỏi bất kỳ khoá học nào mà họ không tham gia. Người dùng có thể cân nhắc tạo thêm một tài khoản nếu cần tham gia các khoá học khác. Nếu phù hợp, bạn có thể dùng students.create() hoặc teachers.delete() để thay mặt người dùng quản lý danh sách.

AttachmentNotVisible

AttachmentNotVisible cho biết rằng một hoặc nhiều tệp đính kèm được chỉ định không hiển thị cho người dùng, không thuộc loại được yêu cầu hoặc không tồn tại. Ví dụ: các mục trên Drive không được chia sẻ cho người dùng sẽ trả về lỗi này.

Hành động có thể áp dụng: Mô tả nguyên nhân không thành công và gợi ý người dùng kiểm tra lại các giá trị nhận dạng, chẳng hạn như mã tệp trên Drive mà họ có. Ngoài ra, hãy đảm bảo người dùng có quyền thích hợp để xem tệp đính kèm.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner cho biết không thể xoá chủ sở hữu của thư mục Drive của khoá học.

Hành động có thể áp dụng: Mô tả nguyên nhân không thành công và gợi ý người dùng chuyển quyền sở hữu thư mục Drive của khoá học cho một người dùng khác rồi thử lại.

CannotRemoveCourseOwner

CannotRemoveCourseOwner cho biết không thể xoá chủ sở hữu khoá học.

Biện pháp xử lý có thể áp dụng: Mô tả nguyên nhân không thành công và gợi ý rằng không thể xoá chủ sở hữu khoá học. Trong hầu hết các trường hợp, người dùng cố gắng tự xoá chính mình và việc này là không được phép.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete cho biết rằng có thể chủ sở hữu khoá học không bị xoá vì vẫn đang tiến hành chuyển quyền sở hữu lớp học này.

Hành động có thể áp dụng: Mô tả nguyên nhân không thành công và đề xuất người dùng đợi một vài giây để thao tác chuyển quyền sở hữu lớp không đồng bộ hoàn tất, sau đó thử lại.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner cho biết không thể xoá một giáo viên khỏi khoá học không có chủ sở hữu.

Biện pháp xử lý có thể áp dụng: Mô tả nguyên nhân không đạt và gợi ý không thể loại bỏ giáo viên. Trong hầu hết các trường hợp, tài khoản người dùng của chủ sở hữu khoá học đã bị xoá, từ đó dẫn đến trạng thái khoá học không hợp lệ.

InactiveCourseOwner

InactiveCourseOwner cho biết hành động được yêu cầu không được thực hiện vì tài khoản của chủ sở hữu khoá học đã bị xoá. Quản trị viên của chủ sở hữu khoá học cần khôi phục tài khoản của chủ sở hữu khoá học trước khi thực hiện hành động được yêu cầu.

Hành động có thể áp dụng: Mô tả nguyên nhân không thành công và đề nghị quản trị viên khôi phục tài khoản của chủ sở hữu khoá học trước khi thử lại thao tác.

IneligibleOwner

IneligibleOwner cho biết không thể thêm người dùng này làm chủ sở hữu khoá học vì người dùng này không phải là người cùng dạy.

Hành động có thể xảy ra: Mô tả nguyên nhân gây ra lỗi. Nếu người dùng yêu cầu không phải là quản trị viên, hãy đề nghị họ gửi cho người dùng lời mời làm giáo viên trong khoá học trước khi cập nhật chủ sở hữu. Nếu người dùng yêu cầu là một quản trị viên, trước tiên, hãy đề nghị họ thêm người dùng đó làm người cùng dạy trong khoá học.

UserCannotOwnCourse

UserCannotOwnCourse cho biết không thể thêm người dùng làm chủ sở hữu của khoá học.

Biện pháp xử lý có thể áp dụng: Mô tả nguyên nhân không thành công và gợi ý rằng bạn không thể tạo khoá học với tư cách là người dùng là chủ sở hữu khoá học. Người dùng yêu cầu tài khoản không phải là quản trị viên có thể gặp lỗi này nếu họ cố tạo khoá học mà không phải là chủ sở hữu. Quản trị viên đang yêu cầu người dùng có thể thấy lỗi này nếu tài khoản người dùng được chỉ định làm chủ sở hữu không tồn tại hoặc người dùng không thuộc miền của họ.

HTTP 429: RESOURCE_EXHAUSTED

RESOURCE_EXHAUSTED được trả về khi thao tác được yêu cầu không được phép vì một số tài nguyên (chẳng hạn như hạn mức hoặc dung lượng của máy chủ) đã hết. Các loại lỗi yêu cầu này thường xảy ra do ứng dụng của bạn tạo ra quá tải.

Để tránh kích hoạt các giới hạn này và tăng độ tin cậy của ứng dụng, hãy dùng cơ chế thử lại. Các cơ chế thử lại hợp lệ bao gồm:

  • Sử dụng thuật toán thời gian đợi luỹ thừa bị cắt bớt để thử lại yêu cầu và tối đa hoá công suất của các yêu cầu trong các môi trường đồng thời.

  • Để tránh va chạm, hãy xem xét thuật toán thời gian đợi luỹ thừa bị cắt bớt có dao động. Khi áp dụng tính năng jitter thì yêu cầu của bạn có thể được thực hiện thành công nhanh hơn bằng cách đưa ra một độ trễ ngẫu nhiên giúp trải rộng ra các mức tăng đột biến về số yêu cầu.

Nếu ứng dụng của bạn trả về RESOURCE_EXHAUSTED lỗi do giới hạn hạn mức, hãy gửi tăng hạn mức. Để biết thêm thông tin, hãy tham khảo bài viết Theo dõi hạn mức API trong trung tâm trợ giúp.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached cho biết người dùng đã tham gia số lượng khoá học tối đa được cho phép trong một ngày. Để biết thêm thông tin, hãy tham khảo phần "Lời mời tham gia nhóm và quy mô nhóm" trong bài viết Tìm hiểu các chính sách và giới hạn của Groups trên trung tâm trợ giúp.

Hành động có thể thực hiện: Mô tả nguyên nhân không thành công và gợi ý người dùng đợi một ngày trước khi tham gia khoá học.

HTTP 500: INTERNAL

INTERNAL cho biết đã xảy ra lỗi không mong muốn trong khi xử lý yêu cầu. Lỗi yêu cầu INTERNAL cũng thường có thể được giải quyết bằng cách sử dụng thuật toán thời gian đợi luỹ thừa để thử lại yêu cầu. Nếu vẫn còn lỗi INTERNAL, bạn có thể báo cáo lỗi đó bằng cách gửi lỗi trên công cụ theo dõi lỗi công khai của API Lớp học.