Discord10 of 10
When she does not answer
Messages the command prints
| What you see | What it means |
|---|---|
the Discord bot needs its extra: | discord, nacl or davey is not importable. Install the discord extra |
I have no Discord bot token. | Nothing saved in the keystore and DISCORD_BOT_TOKEN is empty. Run kotoba discord --save-token |
Discord refused that token. | The token is wrong or was reset. Reset it in the portal and save the new one |
Discord refused the privileged intents. followed by two names | Message Content and Server Members are not both on in the portal |
The bot stopped: ... | Anything else. The full traceback is in the log; a token-shaped string is redacted out of both |
Nothing to read. Pipe the token in, or set DISCORD_BOT_TOKEN. | --save-token had no terminal and nothing on stdin |
Symptoms in a server
| Symptom | Cause |
|---|---|
| She connects, then is silent across a whole server | That server id is not in KOTOBA_DISCORD_GUILDS or --guild |
| She ignores a channel unless mentioned | That is the default. Put the channel id in KOTOBA_DISCORD_HOME_CHANNELS |
| Typing her name as a plain word does nothing | In writing she needs a real mention — hers or a role she wears. The spoken name only works in voice |
| She answered, then went quiet mid-conversation | The 90-second window closed, somebody else wrote in between, or your message mentioned somebody |
| She answers a role ping you did not mean for her | She wears that role. Give her an integration role of her own |
| "I can't ... : that needs Administrator on this server" | The person asking does not hold Discord's Administrator permission there |
| "... only her person can ask for that" | KOTOBA_DISCORD_OWNER_ID is not that person's id |
| "I can't ... — I don't know who's asking me" | A defensive path: a Discord tool ran with no known asker. It should not appear in ordinary use |
| "This one isn't yours to answer." on a card | You are neither the asker nor an administrator — or the card runs on the host and you are not the owner |
| A card nobody can press | It runs on the host and KOTOBA_DISCORD_OWNER_ID is unset |
| "Something went wrong on my side there. Try me again?" | The turn raised. The traceback is in the log under kotoba.discord |
| She cannot touch a role or a person | Her own role sits at or below theirs, or it is the server owner. She says which case it was; moving her role higher fixes the first |
Symptoms in voice
| Symptom | Cause |
|---|---|
| She joins and never speaks or reacts | The voice extra is missing, so her transcriber and synthesiser cannot be imported |
| She joins, hears you, and says nothing | No ElevenLabs key, or libopus is not installed on Linux or macOS |
| "I can't listen in there: Discord negotiated ..." | Discord chose an encryption mode this version does not implement |
| She does not react to her name | Read what the transcriber actually wrote — every partial is logged. A name mangled into another script usually means her language is auto; set it, or set KOTOBA_STT_LANGUAGE |
| She answers somebody else's sentence | Her name was heard in a partial that the final transcript rewrote away. It is deliberate — the partial is the earlier and clearer evidence |
| "I got stuck on that one — ask me again?" | Nothing happened for 75 seconds, or the turn ran past 10 minutes |
| She left on her own | Nobody but bots was in the channel for five minutes |
Reading the log
The bot logs under kotoba.discord. It records sizes and ids, never the words: whoever runs her
needs to see that turns are happening and how big they are, and a log that quotes a channel is a
second copy of that channel.
Voice is the exception: partial and committed transcripts are logged, because a name has no dictionary behind it and reading what the transcriber wrote is the only way to know how it spells hers.
