Bot won't start / no output
Bot won't start / no output
- Check that
BOT_TOKENis set correctly in.env— paste it directly with no extra whitespace or quotes. - Check that
CHANNEL_IDis a valid integer channel ID, not a channel name. - Run
python main.pydirectly in your terminal and read the error output — the startup logs will point to the exact problem. - Verify all required dependencies are installed:
pip install -r requirements.txt.
Slash commands not showing in Discord
Slash commands not showing in Discord
- Slash commands need to be synced after first launch or after changes.
- Run
/syncas the Bot Owner to push global slash commands to Discord. - Discord can take a few minutes to propagate global slash commands — wait and refresh your client.
- Make sure you invited the bot with the
applications.commandsscope. Re-invite with that scope if needed.
AI commands not responding
AI commands not responding
- Check that the
genaimodule is enabled:/module list. - Verify your API key is set in
.envfor the provider you chose (GOOGLE_API_KEY,OPENAI_API_KEY, etc.). - Confirm
AI_PROVIDERin.envmatches the key you provided — for example, if you setGROQ_API_KEY, setAI_PROVIDER=groq. - Run
/provider showto confirm the active provider matches your intent. - Check the bot console output for API error messages — rate limit, authentication, and quota errors are printed there.
Bot responds in the wrong channel or everywhere
Bot responds in the wrong channel or everywhere
- Use
/setchannel #channelto restrict conversation replies to a specific channel. - Check the current chat mode: use
/chatmode mentionsto limit replies to direct mentions and replies to the bot only. - If autonomous mode is active, disable it with
/autonomy offto stop unsolicited replies in non-conversation channels.
~math doesn't work
~math doesn't work
~mathrequiresWOLFRAM_APPID_SHORTto be set in.env. Get an AppID from developer.wolframalpha.com.- If the Short Answer API returns no result,
WOLFRAM_APPID_LLMis used as a fallback — set both for full coverage. - Check that the
mathmodule is enabled:/module list.
~download / ~audio fails
~download / ~audio fails
- Both commands require
yt-dlpandffmpegto be installed and available on your systemPATH. - Check that the
ytdlpmodule is enabled:/module list. - Discord has a 10 MB upload limit for free servers — large video files will fail after download. Try a shorter clip or lower resolution source.
- A per-user cooldown of 30 seconds applies between downloads — wait and try again.
- If compression still produces an oversized file, lower the target:
/config set ytdlp_compress_target_mb 8.0.
~separate returns no result or times out
~separate returns no result or times out
~separaterequiresMVSEP_API_KEYto be set in.env.- Check that both the
mvsepandytdlpmodules are enabled —mvsepdepends onytdlpfor platform URL downloads:/module list. - MVSEP’s free tier allows one separation job at a time — if a job is already in progress, wait for it to finish before submitting another.
- For long audio files, increase the polling timeout:
/config set mvsep_poll_timeout 600. - If you configured webhook-based completion, verify
MVSEP_WEBHOOK_URLis publicly accessible and reachable by MVSEP’s servers.
Data lost after redeployment on Railway or Render
Data lost after redeployment on Railway or Render
- Without a persistent volume,
config.json,memory.db,warnings.db, and persona files are wiped on every redeploy. - Mount a volume at
/datain your hosting platform’s settings. - Set all file path environment variables to their
/data/equivalents — see the Environment Variables reference for the full list.
Memory and persona files not persisting between restarts
Memory and persona files not persisting between restarts
- Confirm
CONFIG_FILE_PATH,MEMORY_FILE_PATH,AI_PERSONA_JSON_FILE, andWARNINGS_FILE_PATHall point to a writeable location. - On cloud hosts (Railway, Render), these paths must be inside a mounted persistent volume.
- Check that the bot process has write permissions to the target directory.
Prompt injection detection altering my messages
Prompt injection detection altering my messages
Freesona detects common prompt injection phrases —
"ignore previous instructions", "jailbreak", "developer mode", and similar — and sanitizes them before the prompt reaches the AI model. The prompt is neutralized rather than silently dropped, and the bot’s output is also checked for injection artifacts. If a prompt is being altered, look at the bot console output for a security log message. This is intentional behavior designed to protect your persona from being overridden.Still Stuck?
If none of the above resolves your issue, get help from the community:- GitHub Issues — open a bug report or check existing issues at github.com/soquincy/Freesona/issues
- Discord Server — ask in the support channel at discord.gg/vXPRs2cHSE