Что делать, если
Запуск
Студия падает на старте контейнера. На Docker Desktop под macOS сторожевой контейнер testcontainers часто не поднимается. Запускайте с TESTCONTAINERS_RYUK_DISABLED=true.
Порт занят. У студии --port, у раннера — проброс в docker-compose.yml. Занять 8765 может прошлый процесс студии: он держит эфемерный Postgres до выхода.
Приложение открылось, но старое. Браузер отдаёт кэш. Жёсткая перезагрузка страницы; если не помогло, проверьте, что образ пересобран: docker compose up -d --build runner.
Автор
«Решения разошлись — формулировка двусмысленна». Три независимо сгенерированных решения дали разные результаты на одних данных. Это дефект формулировки, а не моделей: уточните задание на шаге 2 и повторите шаг 3.
«Проверки не сошлись». Набор проверок не ловит негативные решения. Смотрите вкладку «Негативные решения»: те, что помечены «ничем не поймано», и показывают дыру. Обычно помогает переген задания; если дыра остаётся, ужесточите формулировку.
Задания помечены устаревшими. Область изменилась после того, как задания были утверждены. Либо верните область к утверждённой версии, либо пересоздайте задания и материализации.
Не хватает заданий по теме. Шаг 2 не даст утвердить набор, пока покрытие не сойдётся с квотами шага 1. Варианты: перегенерировать задания, ослабить квоты, дописать задание вручную.
Раскрытие варианта в отчёте долго думает. Первое обращение поднимает эфемерный Postgres — около сорока секунд. Дальше он живёт вместе с процессом студии, и следующие раскрытия мгновенные.
Студент
Проверка проходит на примерах и падает на скрытых вариантах. Скрытые варианты специально содержат крайности: пустой результат, одна строка, NULL в колонке, только один класс записей. Раскройте упавший вариант — там видно, на каких данных разошлось.
Живая база в непонятном состоянии. «Сбросить базу» возвращает пустую схему, «Загрузить в мою базу» на вкладке примеров наливает данные заново. На проверку состояние живой базы не влияет.
Решение исчезло. Решения лежат в solutions/<задание>.sql на диске рядом с docker-compose.yml, а не в контейнере. Если папка пуста, проверьте, тот ли каталог смонтирован как /solutions.
Локально зелёное, в CI красное. Так быть не должно: код проверок общий. Сверьте версию пака и тег образа — обычно расходится одно из двух.
Оформление
Тема не применилась. Проверьте лог: docker compose logs runner | grep -i theme. Неизвестные имена токенов отбрасываются молча для студента, но в лог пишутся.
Шрифт не подхватился. Файл должен лежать в theme/assets, быть перечислен в fonts и назначен токеном font-body или font-mono. Внешние адреса не сработают: их режет CSP.
Вёрстка поехала. Откройте ?theme=off. Если в дефолте всё в порядке — дело в theme.css; чаще всего в нём переопределены раскладочные свойства или заданы padding в обход токенов радиуса.
Кнопки в теме прижаты к скруглению. Радиусы задавайте токенами: горизонтальные отступы вычисляются от них. Собственный padding в theme.css эту связь разрывает.