Troubleshooting.

When Jarvis won't talk, won't join voice, or won't play music - start here.

Section 05 of 5 3 min read ← All docs

Jarvis won't respond at all

If a mention or slash command does nothing, walk this checklist in order.

  1. He has Read Message History and Send Messages in the channel. Discord's permission overrides per channel are the most common silent killer.
  2. The channel isn't locked elsewhere. Run /channel set channel: #here in the channel you want him in, or /channel clear to unlock everywhere.
  3. You aren't blocked by the role gate. Server admins can check with /role list. If no roles are allowlisted, everyone can use him.
  4. He's online. If his status shows offline in member list, the hosted instance is restarting - usually back within a minute. Check AGIS for incident notices.
  5. You aren't on the per-server blacklist. If a moderator blocked your account from the bot, /blacklist list shows who's blocked.

Slash commands don't show up

Discord caches command lists aggressively. Try:

  • Re-invite the bot. Use the current invite link; the OAuth flow re-syncs the command registry.
  • Restart your Discord client. The slash list lives in the client cache. Ctrl+R on desktop, or fully close and reopen mobile.
  • Wait ~10 minutes after the bot joins. Discord rolls command updates out asynchronously.

Voice channel: joins but doesn't hear me

  • Confirm the wake word fired. Default is jarvis or garmin. Check your personal setting with /wakeword (no args) - if there's a custom word, use that instead.
  • You haven't opted out of voice transcription. /opt mode: out blocks voice too, not just text memory.
  • Mic input is reaching Discord. Watch the voice user list - your name should pulse green when speaking. If it doesn't, Discord isn't seeing your mic.
  • The voice transcription provider is reachable. If the upstream STT API is down, /voice joins but transcription never runs.

Voice: he hears me but doesn't talk back

  • Bot has Speak permission in the voice channel. Connect-only doesn't cut it.
  • You aren't server-deafened relative to him. Discord client deafen blocks both directions on most setups.
  • TTS provider isn't rate-limited. When the upstream TTS returns 429, the bot quietly skips that turn rather than spamming retries.

Music: /play doesn't start anything

  • You're in a voice channel when you run the command - Jarvis needs somewhere to join.
  • He has Connect + Speak in that channel.
  • The URL/query resolved. Search queries that return zero results fail silently. Try a direct URL.
  • DJ mode isn't blocking you. If /dj toggle enabled: true is on, only DJs and admins can queue. /dj list shows who's allowed.
  • Self-hosters: ffmpeg and yt-dlp are on the path and the right version. ffmpeg -version and yt-dlp --version from the same shell that started the bot.

Music cuts out or stutters

Almost always network or codec related:

  • YouTube throttling. Long sessions on hosted YouTube playback occasionally hit anti-abuse limits. Re-queue the track.
  • Discord voice region. Server voice region mismatched with the host can cause jitter. Server settings → Region → set to nearest or Automatic.
  • Self-hosters: Check CPU. ffmpeg transcodes are CPU-bound; a tiny VPS can stutter on high-bitrate sources.

"You can't use this command" errors

Permission-gated commands check your Discord permissions, not bot-internal roles. /ban requires Ban Members, /automod requires Manage Server, etc. Ask a server admin to either grant the permission or run the command for you.

The commands page labels each command with its required permission level - Mod, Admin, Manage Server, or Restricted.

Memory feels wrong - wipe and restart

  • /clear - instantly wipes your conversation history with Jarvis in this server.
  • /memory entries: 20 - see what he currently has stored. Look for stale facts.
  • /profile show - your saved preferences. /profile set key: pronouns value: … to fix one.
  • /opt mode: out followed later by /opt mode: in resets memory to zero and starts fresh.

Portal won't sign in

  • Cookies enabled. The portal uses HTTP-only session cookies - third-party cookie blockers occasionally trip on it.
  • You authorized the right scopes. The OAuth screen asks for identify and guilds. Both are required for the portal to know which servers to show you.
  • Discord rate limit. If you've signed in/out repeatedly, Discord may temporarily throttle the OAuth handshake. Wait a few minutes.

None of this worked

Join the AGIS server and ask for help. Include:

  • The command you ran (exact text)
  • What you expected vs. what happened
  • Server ID (right-click server → Copy Server ID - needs Developer Mode on)
  • Approximate timestamp

That's enough for a maintainer to grep the logs and find the failure mode.

Still stuck?

Drop a question in the AGIS support channel. Most things get answered within the day - the maintainer reads every message.