Что делать когда что-то сломалось
Ошибки в вайб-кодинге неизбежны. Это не значит, что ты что-то делаешь не так — это нормальная часть процесса. Главный навык вайб-кодера: не паниковать при виде красного текста, а уметь его прочитать и отдать ИИ.
Золотое правило
Скопируй ошибку → отдай ИИ. Почти всегда этого достаточно.
Вот ошибка:
[вставляешь текст ошибки полностью]
Почини.ИИ прочитает ошибку и поймёт что случилось. Не пересказывай ошибку своими словами — копируй текст как есть.
Где смотреть ошибки
Ошибки в терминале
Если запускаешь Python-бота или скрипт — ошибки появляются прямо в терминале. Выглядит так:
Traceback (most recent call last):
File "bot.py", line 15, in <module>
token = os.getenv("BOT_TOKEN")
TypeError: 'NoneType' object is not subscriptableВажная часть — последняя строка. Именно там написано что случилось.
Ошибки в браузере (консоль)
Если что-то не работает на сайте — нажми F12 (или Cmd+Option+I на Mac). Открывается DevTools. Перейди на вкладку Console.
Проще говоря
Консоль браузера — это как бортовой журнал самолёта. Всё что происходило записано там. Ты её обычно не видишь — она скрыта. Нажал F12 — открыл журнал и читаешь.
Красные строки — это ошибки. Скопируй текст → отдай ИИ.
Ошибки в логах на сервере
Если приложение запущено как сервис через systemd:
journalctl -u имя-сервиса -f --no-pagerФлаг -f означает «следить в реальном времени» — новые строки появляются по мере работы приложения. Ctrl+C — остановить слежение.
Если приложение запущено просто командой в терминале — ошибки видны прямо там.
Типичные ошибки и что они значат
ModuleNotFoundError / Cannot find module
ModuleNotFoundError: No module named 'aiogram'Что значит: не установлена библиотека.
Решение:
pip install aiogram # для Python
npm install aiogram # для JS (другие пакеты)Или скопируй ошибку и скажи ИИ — он подскажет точную команду.
ConnectionRefusedError / ECONNREFUSED
ConnectionRefusedError: [Errno 111] Connection refusedЧто значит: приложение пытается подключиться к чему-то (базе данных, другому сервису), а там никого нет.
Решение: проверь, запущен ли тот сервис. Например, если это база данных:
systemctl status postgresqlPermission denied
PermissionError: [Errno 13] Permission denied: '/var/log/myapp.log'Что значит: у программы нет прав на запись в этот файл или папку.
Решение: либо поменяй путь на папку где есть права (например, /tmp/ или папку проекта), либо дай права:
sudo chown -R $USER /var/log/myappPort already in use / EADDRINUSE
OSError: [Errno 98] Address already in useЧто значит: порт, на котором хочет запуститься приложение, уже занят другим процессом.
Решение: найди что занимает порт (например 8080) и останови:
lsof -i :8080 # найти процесс
kill -9 <PID> # остановить по ID из предыдущей командыИли просто перезапусти сервер — часто помогает.
502 Bad Gateway (Nginx)
Ты видишь эту страницу в браузере — сайт открывается, но вместо твоего приложения — ошибка.
Что значит: Nginx работает (страница открылась), но не может достучаться до твоего приложения. Скорее всего, приложение не запущено.
Решение: запусти приложение:
systemctl status имя-сервиса # посмотреть статус
systemctl start имя-сервиса # запуститьSyntaxError
SyntaxError: invalid syntaxЧто значит: ИИ написал код с ошибкой синтаксиса (забытая скобка, кавычка и т.д.).
Решение: скопируй ошибку → отдай ИИ → он исправит.
Алгоритм действий при любой ошибке
1. Прочитай ошибку → последняя строка — самая важная
2. Скопируй весь текст ошибки
3. Отдай ИИ: "Вот ошибка: [текст]. Почини."
4. Если ИИ не помог — уточни контекст: "Это бот на aiogram 3,
запущен на Ubuntu 22.04, вот файл bot.py: [вставь код]"
5. Если совсем непонятно — погугли последнюю строку ошибкиКогда ИИ сломал то что работало
Это случается: ты попросил добавить фичу, ИИ добавил, и что-то другое перестало работать.
Способ 1 — скажи ИИ:
После последних изменений перестало работать [что именно].
Верни как было и внеси только [что просил].Способ 2 — откатиться через Git:
git diff # посмотреть что изменилось
git checkout . # откатить ВСЕ несохранённые измененияОсторожно с git checkout
git checkout . откатывает все несохранённые изменения — в том числе то, что работало хорошо. Используй только если хочешь вернуть всё к последнему коммиту.
Поэтому — делай коммиты после каждого рабочего состояния:
git add .
git commit -m "working: добавил форму обратной связи"Теперь всегда можно вернуться именно сюда.
Читай ошибки как текст
Ошибки написаны на английском, но они описательные. Попробуй прочитать буквально:
File not found— файл не найден. Проверь путь к файлу.Connection timed out— соединение не установилось. Нет интернета или сервис недоступен.Invalid token— неправильный токен. Проверь.env.Rate limit exceeded— слишком много запросов. Подожди минуту.
Даже без знания английского — можно скопировать и спросить у ИИ перевод + решение.
Что дальше?
Ты умеешь разбираться с ошибками — это ключевой навык. В следующей главе — Telegram-бот с нуля: от BotFather до работающего бота на сервере.