Troubleshooting¶
Common startup errors and what they mean:
DISCORD_BOT environment variable is not set— missing bot token. Add it to.env.No familiar selected— neitherFAMILIAR_IDnor--familiarwas given.Familiar folder does not exist— createdata/familiars/<id>/.OPENROUTER_API_KEY environment variable is required— missing OpenRouter key.Opus library not found — voice playback will not work— voice commands still run, but no audio; install libopus.
Runtime symptoms¶
- Bot joined voice but no audio plays — confirm libopus loaded on
startup (look for the
Loaded Opus from:debug line). Without itvoice_client.play(...)is silent. Also confirm a TTS provider in[tts].providerand the matching env var (AZURE_SPEECH_KEY,CARTESIA_API_KEY, orGOOGLE_API_KEY/GEMINI_API_KEY) is set; with no client the player falls back toLoggingTTSPlayer, which only logs. (playback only — no transcriber)after/subscribe-voice—DEEPGRAM_API_KEYis missing or invalid. The bot joined the channel and can speak, but incoming audio isn't transcribed.- No reply to a text message — confirm
/subscribe-textran in that channel (subscriptions are per-channel) and thatsubscriptions.tomllists it.