The backend has no Telegram API credentials loaded, so no login code can be requested. Set TELEGRAM_API_ID and TELEGRAM_API_HASH in backend/.env and restart the backend.
  1. Set TELEGRAM_API_ID and TELEGRAM_API_HASH in backend/.env (values from my.telegram.org).
  2. Restart the backend. Settings are read once at import — editing .env while it runs changes nothing.
  3. Check the startup log for the config | telegram api credentials: line. It names the env file the backend actually found and the API ID it loaded.

Connect your Telegram

Single-owner access. API credentials stay on the server — you only enter your phone and login code.

International format, including the country code — for example +919876543210.

No OTP or 2FA password is ever stored. The Telegram session is encrypted at rest on the server.

From my.telegram.org → API development tools. Use these if login codes never arrive: an application can be blocked from sending them, and Telegram allows only one application per account with no way to reset it — so the replacement must come from a different Telegram account.

Stored encrypted on the server and never returned to the browser. Takes effect on the next code request — no restart needed.