Коди помилок¶
Відмова API несе в полі detail код причини й пояснення: {"code": "…", "details": "…"}. Код —
сталий ключ, за яким ваша платформа добирає власні слова; details — запасний текст для коду,
якого вона ще не знає. Код із посиланням веде до розділу, де його описано докладно.
Подача відповідей на тест¶
Коди, які отримує платформа школи, надсилаючи відповіді студента. Нічого з відмовленої подачі не зберігається.
| код | стан | причина | що робити |
|---|---|---|---|
TEST_ANSWERS_REQUIRED |
422 | на тест надіслано файл | надіслати відповіді маршрутом подачі тесту |
TEST_FORM_UNAVAILABLE |
409 | тести тимчасово не приймаються відповідями | сказати студентові, що тест тимчасово недоступний, і спробувати пізніше |
NOT_A_TEST_TASK |
422 | для тестів, створених у системі, не видається: завдання, що не є опублікованим тестом, дістає 404 | якщо платформа вже обробляє код — перевірити, що вказано саме тестове завдання |
TEST_VERSION_CHANGED |
409 | тест змінився, поки студент відповідав | прочитати тест знову й відповісти на нову версію |
TEST_NOT_READY |
409 | для тестів, створених у системі, не видається: опублікована версія завжди має правильні відповіді | якщо платформа вже обробляє код — спробувати пізніше |
ANSWERS_DO_NOT_MATCH_TEST |
422 | названо питання чи варіант, яких у тесті немає | звірити відповіді з читанням тесту й надіслати мітки так, як їх показав маршрут структури |
Коментар студента до подачі¶
Коди, які отримує платформа школи, коли до подачі — файла чи відповідей на тест — додано коментар
студента (student_note), що не пройшов перевірки (див. Коментар студента).
Нічого з відмовленої подачі не зберігається.
| код | стан | причина | що робити |
|---|---|---|---|
STUDENT_NOTE_TOO_LONG |
422 | коментар довший за 2 000 знаків | попросити студента скоротити коментар і надіслати подачу знову |
STUDENT_NOTE_REJECTED |
422 | у коментарі символи зміни напрямку тексту, тегові чи керівні символи або рядок, що не є правильним Unicode; details починається з категорії |
попросити студента переписати коментар без них і надіслати подачу знову |
Подія failed у вебхуку¶
Причина в полі reason, коли прийняту подачу не вдалося перевірити.
| причина | що сталося | що робити |
|---|---|---|
path_failed |
збій на нашому боці, рецензії не буде | запропонувати студентові надіслати відповіді ще раз |
test_not_ready |
для тестів, створених у системі, не надходить | якщо платформа вже обробляє причину — запропонувати спробувати пізніше |
review_parts_missing |
сьогодні не надходить: з'явиться для текстових завдань, коли їх перевірятимуть за вердиктами по кожному критерію; означатиме, що рецензію не вдалося скласти через збій на нашому боці, і її не буде | сказати студентові, що роботу не вдалося перевірити з нашої вини, і запропонувати надіслати її ще раз; якщо причина повторюється — повідомити адміністратора системи |
Тест, створений у системі¶
Коди, які отримує автор, створюючи, змінюючи, перевіряючи й публікуючи тест. Нічого з відмовленого
запиту не зберігається. Відмови формату несуть ще й place — місце помилки, а відмова незавершеної
чернетки — перелік incomplete (див. Коли тест відмовлено).
| код | стан | причина | що робити |
|---|---|---|---|
TEST_YAML_UNREADABLE |
422 | YAML чи JSON не читається | виправити запис у місці, яке називає place |
TEST_YAML_DUPLICATE_KEY |
422 | те саме поле двічі в одному місці | лишити одне |
TEST_YAML_ALIAS |
422 | якір чи посилання YAML (&, *) |
записати текст повністю |
TEST_FIELD_INVALID |
422 | поле невідоме чи відсутнє, назва порожня, поле не того виду чи задовге | виправити поле за details і таблицею формату |
TEST_OPTIONS_COUNT |
422 | у питанні понад 26 варіантів | розділити питання на кілька |
TEST_TOO_LARGE |
413 | файл чи запит понад 256 КБ | розділити тест на кілька |
SECURITY_REJECTED |
400 | невидимі символи, фрази, схожі на вказівки, чи файл, який не вдалося прочитати як текст | набрати текст заново чи зберегти файл в UTF-8 |
NOT_A_TEST_OBJECT |
422 | ідентифікатор веде не до тесту, створеного в системі | перевірити ідентифікатор; старий текстовий тест створити заново з YAML |
TEST_DRAFT_INCOMPLETE |
422 | перевірка чи публікація незавершеної чернетки; incomplete називає кожне місце, яке лишилось завершити |
завершити кожне місце з переліку, зберегти чернетку й повторити |
GENERATION_IN_PROGRESS |
409 | система саме пише пояснення до тесту | дочекатися, доки вона закінчить, і повторити перевірку чи публікацію |
TEST_FILE_NOT_YAML |
422 | матеріал із видом «Тест» — не YAML-файл | записати тест у YAML і завантажити файлом |
TEST_OBJECT_SOURCE_RESERVED |
422 | запит сам вказав вид джерела test_object |
не вказувати його: завантажити YAML-файл або створити тест запитом |
TEST_OBJECT_TYPE_FIXED |
422 | спроба змінити тип завдання тесту | створити новий матеріал |
TEST_OBJECT_ROLE_FIXED |
422 | спроба зробити тест методичним матеріалом: тест завжди навчальний | лишити роль навчальною; щоб прибрати тест від студентів — приховати його |
TEST_IS_AN_OBJECT |
422 | спроба зробити тестом наявний матеріал | створити тест із YAML |
TEST_OBJECT_NOT_PROCESSED |
422 | повторна обробка чи ролі файлів для тесту | змінити чернетку й опублікувати |
KEY_LIVES_IN_TEST |
422 | заміна чи скидання ключа відповідей для тесту | змінити позначки в чернетці й опублікувати |
Незавершену чернетку система зберігає, а місця, які лишилось завершити, називає переліком
incomplete — у читанні чернетки й у відмові TEST_DRAFT_INCOMPLETE. Кожне місце — код, номер
питання й номер варіанта (див. Незавершена чернетка).
| код | місце | що не так | що робити |
|---|---|---|---|
TEST_NO_QUESTIONS |
тест | питань немає | додати питання |
TEST_TEXT_EMPTY |
питання чи варіант | порожній текст | написати текст |
TEST_OPTIONS_COUNT |
питання | менше двох варіантів | додати варіанти |
TEST_NO_CORRECT_OPTION |
питання | жоден варіант не позначено правильним | позначити хоча б один correct: true |
Запити ключа відповідей¶
Для тесту, створеного в системі, запити ключа відповідей (…/reference/override) відмовляють кодом
KEY_LIVES_IN_TEST. Коди нижче видають ці запити для
тесту, завантаженого текстом до появи тестів, створених у системі, і для матеріалу, що не є тестом.
Тест, завантажений текстом, відповідей більше не приймає — створіть його заново з YAML (див.
Як створити тест). Нічого з відмовленого запиту не зберігається.
| код | стан | причина | що робити |
|---|---|---|---|
NOT_A_TEST_TASK |
422 | завдання — не тест; для тестів, створених у системі, не видається | перевірити, що завдання створене як тест |
TASK_NOT_READY |
422 | завдання ще обробляється | дочекатися кінця обробки й надіслати ключ ще раз |
TASK_LANGUAGE_UNSET |
422 | у матеріалу не вказано мову | вказати мову матеріалу й надіслати ключ ще раз |
TASK_TEXT_TRUNCATED |
422 | текст тесту задовгий і обрізаний | скоротити тест або розділити на кілька |
NO_QUESTION_NUMBERS |
422 | у тексті немає жодного номера питання | набрати номери 1. на початку рядків власноруч |
KEY_DOES_NOT_MATCH_QUESTIONS |
422 | номери в ключі не збігаються з тестом | виправити ключ за details і надіслати цілком |
GENERATION_IN_PROGRESS |
409 | система ще пише пояснення або обробляє завдання | дочекатися, доки вона закінчить, і надіслати ключ ще раз |
Запити переліку критеріїв¶
Коди, які видають запити переліку критеріїв текстового завдання (…/criteria і …/criteria/override,
див. Критерії текстового завдання). Нічого з відмовленого запиту не
зберігається.
| код | стан | причина | що робити |
|---|---|---|---|
NOT_A_TEXT_TASK |
422 | матеріал — тест або не завдання | для тесту — позначки правильних відповідей у редакторі тесту |
TASK_NOT_READY |
422 | завдання ще обробляється або його прибрано з курсу | дочекатися кінця обробки й повторити запит |
AWAITING_FIRST_SUBMISSION |
422 | переліку ще немає | прочитати перелік: status і message кажуть, чому його немає й що робити (див. Коли переліку немає); правити, коли status — ready |
UNKNOWN_CRITERION_ID |
422 | id критерію чи пункту, якого немає в чинному переліку |
прочитати перелік знову; новий критерій — без id |
CHECK_METHOD_NOT_ADMITTED |
422 | code_test не в проєкті |
вибрати model_verdict чи mandatory_points |
UNKNOWN_CONCEPT |
422 | поняття не з concepts читання |
вибрати поняття з concepts або прибрати його |