Troubleshooting
Find the symptom that matches what you’re seeing. Each entry is the same shape: what’s happening, why, fix. If a deeper page covers the topic in detail, the entry links straight to it.
If your symptom isn’t listed, the closest match is usually the right starting point — most issues fall into a handful of patterns, and the cause is almost always something Telegram, the watchlist state, or a chain limitation is doing.
I pasted a contract in a group and nothing happened
Section titled “I pasted a contract in a group and nothing happened”Why. Telegram puts every bot into privacy mode by default
when it joins a group. In privacy mode the bot only receives
messages addressed to it: slash commands, replies to its messages,
and @username mentions. A plain pasted contract is invisible —
Telegram filters it before Prysm ever sees it.
Fix. Either of these works on its own:
- Promote the bot to admin in the group. The moment it’s an admin, Telegram lifts privacy mode for that chat.
- Disable privacy in BotFather with
/setprivacy→ Disable. One flip, account-wide. Re-add the bot to the group afterwards so the setting takes effect.
Slash commands work, but pastes don’t
Section titled “Slash commands work, but pastes don’t”Same root cause as above. Privacy mode lets /list, /add, /og,
/settings and replies through, because they’re explicitly addressed
to the bot. Plain text pastes are the one thing it filters. Apply the
same fix — promote to admin or disable privacy in BotFather.
My alert never fired
Section titled “My alert never fired”Why. Most likely the alert isn’t actually armed. Price and
market-cap alerts are one-shot: when they fire, isActive flips
to false and they disappear from /alert. Percent-change alerts
stay active and re-arm at the new baseline.
Fix.
- Run
/alertin DM and check whether the alert is still there. If it isn’t, it already fired — the DM notification is the record. - If you want a fired one-shot alert back on duty, tap the ✏️
pencil and edit it. Saving a new value flips both
isActiveandisTriggeredback, so the alert re-arms automatically. - If the alert is in
/alertbut never fires, double-check the target —aboveversusbelow, the right number, and that the token’s price feed is actually reaching the bot (a fresh/listshould show a current price for it).
/list shows the wrong pair or wrong DEX
Section titled “/list shows the wrong pair or wrong DEX”Why. When a token is first added, Prysm picks the best pair it finds at that moment. If the token migrates (pump.fun → Raydium, for example), or a deeper pool appears later on a different DEX, the stored pair can fall behind.
Fix. Run /refresh <contract>. The command re-resolves the
token’s pool to the highest-liquidity pair currently available and
updates the stored pool address. The bot replies with either “Pool
updated” (it switched pairs) or “Pool verified” (it was already on
the best one). Either way the next /list reflects the right pair.
/og says “No tokens with sufficient liquidity”
Section titled “/og says “No tokens with sufficient liquidity””Why. /og filters every candidate pair through a liquidity-or-activity
gate before showing it. If every pair on that chain failed the
$500 strict floor and also failed the $100 relaxed retry,
the list comes back empty.
Fix. Two paths out:
- Try a different chain.
/og eth ABC,/og bsc ABC,/og base ABC. The symbol may have meaningful activity somewhere else. - Paste the contract directly. If you know the address you’re looking for, give Prysm the contract and it’ll resolve the chain and pair without needing a symbol search.
/ath says “ATH not supported”
Section titled “/ath says “ATH not supported””Why. All-time-high tracking is EVM-only and limited to a fixed set of chains. Anything outside that list — Solana, TON, Tron, Sui, plus EVMs Prysm doesn’t have ATH coverage for (MegaETH, Sonic) — returns the unsupported message.
Fix. Use /ath with one of the supported chain shortcuts: eth,
base, bsc, polygon, avax, arb, op. For unsupported
chains there’s no fix — the data source doesn’t have OHLCV history
for them.
A token shows <$1K market cap
Section titled “A token shows <$1K market cap”Why. Not a bug. When a token’s market cap is below $1,000, Prysm
displays <$1K instead of a precise tiny number. Below that
threshold the precision isn’t useful — a $40 cap and a $400 cap are
both telling you the same story.
Fix. Nothing to fix. If you need the exact figure, the chart provider link in the row will show it.
/portfolio says “only available in private chat”
Section titled “/portfolio says “only available in private chat””Why. /portfolio is DM-only by design. It surfaces your
holdings — amounts you set with /setholding against your personal
watchlist — and that data doesn’t belong in a group view.
Fix. Open your private chat with the bot and run /portfolio
there. Holdings live on your user record, not on a group, so they
follow you between chats automatically.
”You’ve reached your token limit”
Section titled “”You’ve reached your token limit””Why. Every account starts with a default token cap. Once your
watchlist hits the limit, /add and paste detection both refuse to
take more.
Fix.
- Run
/listand use/removeon tokens you no longer follow. Each removal frees one slot. - If you genuinely need a larger watchlist, contact the bot owner to request a higher limit.
/setalert says “Token not found in your watchlist”
Section titled “/setalert says “Token not found in your watchlist””Why. /setalert doesn’t add tokens. It assumes the contract is
already on your watchlist and refuses to create an alert against a
token you aren’t tracking.
Fix. Run /add <contract> (or paste the contract and tap Add
to Watchlist) first, then re-run /setalert <contract> <type> <comparison> <value>. Alternatively, open /detailed and use the
inline 🔔 button on the token row — that path doesn’t require the
CLI at all.
A PvP session message stopped updating
Section titled “A PvP session message stopped updating”Why. Sessions have a fixed lifecycle. Each session runs for 15 minutes by default. The Extend +15m button adds another 15 minutes per tap, but a session can never run longer than 30 minutes total — that’s the hard cap measured from when it started.
Fix. If the session was within its window, refresh the chat — the
message edits in place, and Telegram occasionally drops the live
update. If the session has actually expired, start a new one with
/pvp and the same contracts.
”Already tracking this token”
Section titled “”Already tracking this token””Why. The contract is already on the watchlist for that scope. In DM, that means your watchlist already has it. In a group, the group already has it — you or someone else added it earlier.
Fix. Run /list (or /detailed for more context) to confirm.
The token’s already where you want it; nothing else to do. If you
want a fresh price, the row in /list is already live.
Group admin commands say “Only group admins can…”
Section titled “Group admin commands say “Only group admins can…””Why. A handful of group-side commands require creator or
administrator status in Telegram. Prysm calls Telegram’s own
getChatMember and rejects anyone else. The commands gated this way:
| Command | Where |
|---|---|
/migrate | Group only |
/import | Group only (DM is unrestricted) |
/autodetect | Group only |
/settings panels | Group only |
Fix. Ask a group creator or administrator to promote you, or to run the command on your behalf. There’s no Prysm-side override — it’s the same admin check Telegram uses everywhere else.
Edit/remove deep link from /alert does nothing
Section titled “Edit/remove deep link from /alert does nothing”Why. Two common reasons:
- The alert was deleted in another chat or session between the
time
/alertrendered and the time you tapped the button. The deep link points to a row that’s no longer there. - The success message already auto-deleted. Edit confirmations vanish 10 seconds after they appear; remove confirmations vanish after 5 seconds. If you blinked, the action probably worked.
Fix. Run /alert again to refresh the overview. If the row is
still listed, tap the same button — the action is idempotent. If
the row is gone, the alert was already removed and there’s nothing
left to do.