Skip to content

Что делать когда что-то сломалось

Ошибки в вайб-кодинге неизбежны. Это не значит, что ты что-то делаешь не так — это нормальная часть процесса. Главный навык вайб-кодера: не паниковать при виде красного текста, а уметь его прочитать и отдать ИИ.

Золотое правило

Скопируй ошибку → отдай ИИ. Почти всегда этого достаточно.

Вот ошибка:
[вставляешь текст ошибки полностью]

Почини.

ИИ прочитает ошибку и поймёт что случилось. Не пересказывай ошибку своими словами — копируй текст как есть.

Где смотреть ошибки

Ошибки в терминале

Если запускаешь 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:

bash
journalctl -u имя-сервиса -f --no-pager

Флаг -f означает «следить в реальном времени» — новые строки появляются по мере работы приложения. Ctrl+C — остановить слежение.

Если приложение запущено просто командой в терминале — ошибки видны прямо там.

Типичные ошибки и что они значат

ModuleNotFoundError / Cannot find module

ModuleNotFoundError: No module named 'aiogram'

Что значит: не установлена библиотека.

Решение:

bash
pip install aiogram      # для Python
npm install aiogram      # для JS (другие пакеты)

Или скопируй ошибку и скажи ИИ — он подскажет точную команду.


ConnectionRefusedError / ECONNREFUSED

ConnectionRefusedError: [Errno 111] Connection refused

Что значит: приложение пытается подключиться к чему-то (базе данных, другому сервису), а там никого нет.

Решение: проверь, запущен ли тот сервис. Например, если это база данных:

bash
systemctl status postgresql

Permission denied

PermissionError: [Errno 13] Permission denied: '/var/log/myapp.log'

Что значит: у программы нет прав на запись в этот файл или папку.

Решение: либо поменяй путь на папку где есть права (например, /tmp/ или папку проекта), либо дай права:

bash
sudo chown -R $USER /var/log/myapp

Port already in use / EADDRINUSE

OSError: [Errno 98] Address already in use

Что значит: порт, на котором хочет запуститься приложение, уже занят другим процессом.

Решение: найди что занимает порт (например 8080) и останови:

bash
lsof -i :8080          # найти процесс
kill -9 <PID>          # остановить по ID из предыдущей команды

Или просто перезапусти сервер — часто помогает.


502 Bad Gateway (Nginx)

Ты видишь эту страницу в браузере — сайт открывается, но вместо твоего приложения — ошибка.

Что значит: Nginx работает (страница открылась), но не может достучаться до твоего приложения. Скорее всего, приложение не запущено.

Решение: запусти приложение:

bash
systemctl status имя-сервиса    # посмотреть статус
systemctl start имя-сервиса     # запустить

SyntaxError

python
SyntaxError: invalid syntax

Что значит: ИИ написал код с ошибкой синтаксиса (забытая скобка, кавычка и т.д.).

Решение: скопируй ошибку → отдай ИИ → он исправит.

Алгоритм действий при любой ошибке

1. Прочитай ошибку → последняя строка — самая важная
2. Скопируй весь текст ошибки
3. Отдай ИИ: "Вот ошибка: [текст]. Почини."
4. Если ИИ не помог — уточни контекст: "Это бот на aiogram 3, 
   запущен на Ubuntu 22.04, вот файл bot.py: [вставь код]"
5. Если совсем непонятно — погугли последнюю строку ошибки

Когда ИИ сломал то что работало

Это случается: ты попросил добавить фичу, ИИ добавил, и что-то другое перестало работать.

Способ 1 — скажи ИИ:

После последних изменений перестало работать [что именно].
Верни как было и внеси только [что просил].

Способ 2 — откатиться через Git:

bash
git diff           # посмотреть что изменилось
git checkout .     # откатить ВСЕ несохранённые изменения

Осторожно с git checkout

git checkout . откатывает все несохранённые изменения — в том числе то, что работало хорошо. Используй только если хочешь вернуть всё к последнему коммиту.

Поэтому — делай коммиты после каждого рабочего состояния:

bash
git add .
git commit -m "working: добавил форму обратной связи"

Теперь всегда можно вернуться именно сюда.

Читай ошибки как текст

Ошибки написаны на английском, но они описательные. Попробуй прочитать буквально:

  • File not found — файл не найден. Проверь путь к файлу.
  • Connection timed out — соединение не установилось. Нет интернета или сервис недоступен.
  • Invalid token — неправильный токен. Проверь .env.
  • Rate limit exceeded — слишком много запросов. Подожди минуту.

Даже без знания английского — можно скопировать и спросить у ИИ перевод + решение.


Что дальше?

Ты умеешь разбираться с ошибками — это ключевой навык. В следующей главе — Telegram-бот с нуля: от BotFather до работающего бота на сервере.