Troubleshooting

The bot posts nothing. Check that the current date falls between START_DATE and END_DATE. Outside that window the scheduler registers jobs but never fires them.

Slash commands don’t appear. Confirm DISCORD_BOT_TOKEN is set, then check the logs for a “Synced slash commands” line. The bot syncs on connect, so restart it after inviting it to a new server.

/waiver-report reports a private-league error. Set ESPN_S2 and SWID in config.env, then restart the container.

The dashboard is empty. No snapshot has run yet for the selected season. Use dev/backfill_season.py to load a completed season.

The bot’s replies and the dashboard disagree on the season. Slash commands and scheduled posts read the ESPN API live, using LEAGUE_YEAR. The dashboard shows only the seasons collected into data/fantasy.db. Its season dropdown falls back to the current calendar year until a snapshot exists. Run dev/backfill_season.py for the year you want.

The fantasy-bot container exits with sqlite3.OperationalError: unable to open database file. Docker created the data/ and logs/ bind mounts as root, but the container runs as uid 1000. Run chown -R 1000:1000 data logs on the host, then restart the container.

Cloudflare Tunnel returns a 502. Either cloudflared connected before fantasy-bot finished starting, or fantasy-bot crashed. Check docker-compose logs fantasy-bot for the SQLite permission error. The tunnel retries once the app listens.