Skip to content

Troubleshooting ​

The bot does not answer ​

bash
docker compose ps                 # what is running at all
docker compose logs -f bot        # what the bot says
docker compose config             # is compose or .env broken

If the container restarts in a loop, read the first lines of the log — usually a required variable is missing.

The bot says access denied ​

Your Telegram ID has to be in ADMINS. Find it via @userinfobot. After editing .env, run docker compose up -d so the container re-reads it.

No connection to the Remnawave panel ​

  • Are API_BASE_URL and API_TOKEN current? The token can be reissued in the panel
  • Does the network exist: docker network ls | grep remnawave-network
  • If the panel is elsewhere, the address must be reachable from the container: docker exec -it <bot> wget -qO- $API_BASE_URL/api/system/health

Lost access to the panel ​

The password is reset by a CLI utility that talks to PostgreSQL directly and does not need a running web panel.

bash
# generate a new password
docker exec -it <container> python3 scripts/admin_cli.py reset-password

# for a specific administrator
docker exec -it <container> python3 scripts/admin_cli.py reset-password --username myadmin

# with a password of your own
docker exec -it <container> python3 scripts/admin_cli.py reset-password --password "MyNew$ecure1"

# create another superadmin
docker exec -it <container> python3 scripts/admin_cli.py create-superadmin --username newadmin

# see who exists
docker exec -it <container> python3 scripts/admin_cli.py list-admins

Telegram login does not work ​

  1. TELEGRAM_BOT_USERNAME without the @
  2. The panel domain is registered in BotFather: /mybots → bot → Bot Settings → Domain
  3. The site is served over HTTPS — the widget does not work over HTTP

Agent install fails with 429:: command not found ​

GitHub rate-limits downloads from raw.githubusercontent.com and answers 429 Too Many Requests when the limit is hit. If the installer was started through a pipe (curl … | bash), the body of that error went straight into the shell — hence odd lines such as 429:: command not found and syntax error near unexpected token.

The command generated by the panel downloads the installer into a file and checks the result, so this cannot execute any more. If the download still fails, wait a minute and retry — the limit lifts on its own.

To check whether you are rate-limited:

bash
curl -sI https://raw.githubusercontent.com/Case211/remnawave-admin/main/node-agent/install.sh | head -1

HTTP/2 200 means you are fine, HTTP/2 429 means the limit still applies.

The node agent will not connect ​

server rejected WebSocket connection: HTTP 404 means the reverse proxy is not passing /api/v2/agent/ws. A correct config: Web panel and reverse proxy.

Other cases are covered in Node Agent.

No notifications from the panel ​

Check the webhook setup: usually the secrets differ, or https:// is used where http:// is required.

Database connection error ​

DATABASE_URL must agree with POSTGRES_USER and POSTGRES_PASSWORD — three separate places that drift apart easily. Also check whether the database container came up: docker compose logs remnawave-admin-db.

The panel complains about a plugin version ​

The plugin wants a newer panel than you run. Either upgrade or install an older plugin release.

Logs ​

Two levels: files keep everything, the console only warnings and errors.

FileLevelContents
adminbot_INFO.logINFO+API calls, sync, actions
adminbot_WARNING.logWARNING+timeouts and errors
web_INFO.logINFO+web backend
web_WARNING.logWARNING+web backend problems

Rotation: 50 MB per file, five gzipped archives. They live in ./logs/.

bash
docker compose logs -f bot
tail -100 ./logs/adminbot_INFO.log

Log level, file size and rotation are configurable from the panel without a restart.

Where to go next ​

If none of the above fits — issues on GitHub or the Telegram chat. Include the panel version, a slice of the logs and what you already tried: it saves a round trip.

AGPL-3.0 with a plugin exception