Support

Bot won't connect? Start here.

The SDK only mirrors events your bot already produces — it never touches your broker or orders. So when something's off, it's almost always one of a handful of things. Work top to bottom.

First: run the 30-second self-test

From the machine your bot runs on, with your real key. If this shows up on the dashboard, the connection works and the problem is in your bot's event calls — not the pipe.

import os
from elevate import Monitor

m = Monitor(api_key="em_live_YOUR_KEY", bot="my_bot", mode="paper")
m.signal(sym="ES", side="long", reason="self_test", price=5100.0)
m.fill(sym="ES", qty=1, price=5100.0, side="buy")
m.exit(sym="ES", qty=1, price=5102.0, pnl=100.0, reason="self_test")
m.close()
print("sent — now open the dashboard, Connect, and look for bot=my_bot")
  • Appears in the live feed (~5s): the pipe is fine — jump to "no trades / no score" below.
  • Nothing appears: it's the key or network egress — see "shows nothing" and "401s" below.

Common issues

I connected but the dashboard shows nothing

Checks

  • Are you signed in AND did you click connect? The dashboard only streams after Connect.
  • Is your bot actually running and emitting events right now? A dormant bot shows nothing until it fires a signal or heartbeat.
  • Is the API key correct? A wrong key fails silently — the SDK swallows the 401 so your bot keeps trading. Re-copy it from Account → API keys.
  • Does the bot's bot= name match? Events are grouped under your key's label — check the bot filter dropdown for the right name.
  • Can the bot's machine reach app.elevatemindstudio.net:443 (outbound HTTPS)? On a locked-down VPS this is the usual culprit.

Fix

Run the self-test snippet above from the bot's machine with your real key. If bot=my_bot appears in the live feed within ~5s, the pipe works and the issue is in your bot's event calls. If it doesn't appear, it's the key or network egress.

My bot shows online but there are no trades, no score, no ranking

Checks

  • Is your bot calling mon.exit(...) when a position closes? Closed-trade stats (P&L per trade, win rate, Sharpe, ElevateMind Score, leaderboard) are ALL derived from exit events.
  • Heartbeat and risk events keep the dot green but never produce trades — they're status pings, not closed trades.
  • Has the bot actually closed a trade since you wired it? You need at least one exit with a realized pnl.

Fix

Add a mon.exit(sym, qty, price, pnl, reason) call in your position-close handler (where you already compute realized P&L for your own logs). The dashboard fills in after the first exit.

My bot shows under the wrong name

Checks

  • The dashboard groups by the API key's label, not the bot= string in your code.
  • If you renamed the bot in code, the key label didn't change automatically.

Fix

Keep the key label and your bot= name the same. Rename the key in Account → API keys to match your bot, or vice-versa.

My paper/demo bot shows as 'live' (or the Live board shows the wrong pill)

Checks

  • Is mode= set when you build the Monitor? It defaults to live.
  • The Mode filter and the Live board read this field directly.

Fix

Pass mode="paper" / "demo" / "evaluation" (e.g. from an ELEVATE_MODE env var) when constructing the Monitor. One Monitor per mode if a bot runs across several accounts.

My bot went offline / events stopped

Checks

  • A bot with no events for 5+ minutes fades to offline. That's expected when it's between sessions.
  • Did the bot process crash or lose network? Events are dropped silently when ElevateMind is unreachable (so trading is never blocked).
  • Is mon.close() hooked on shutdown? Without it, the last queued events are lost on a clean exit.

Fix

If the bot is idle between sessions, call mon.heartbeat() once a minute to stay green. If it crashed, check the bot's own logs — ElevateMind only mirrors, it never affects the trading loop.

Nothing posts at all / I get 401s

Checks

  • Is the key active? A revoked or deleted key 401s. Check Account → API keys.
  • Are you posting to the right base URL? Production is https://app.elevatemindstudio.net.
  • If you point at a raw IP with a domain certificate, TLS verification will fail — use the domain, or disable verify only for a temporary IP setup.

Fix

Re-issue a key from Account → API keys, drop it in the bot's .env as ELEVATE_API_KEY, and restart the bot. Never hardcode or commit keys.

Backtest: my symbol isn't in the list

Checks

  • Only symbols we have cached bars for are backtestable. The grid shows exactly what's available.
  • Micro contracts (MES, MNQ, MGC…) appear next to their full-size parent and reuse the same bars.

Fix

Pick the closest available product (or its micro). If you need a symbol we don't list yet, contact support — we add products as our data coverage grows.

Backtest: the P&L looks ~10x too big or too small

Checks

  • Did you pick the full-size contract when your bot trades the micro (or vice-versa)? A micro is 1/10 the dollar multiplier of its parent.

Fix

Match the contract size to what you actually trade — MES ($5/pt) vs ES ($50/pt), MNQ ($2) vs NQ ($20), etc.

Quick diagnostic checklist

  1. Signed in and clicked connect?
  2. Bot process running and emitting right now?
  3. API key correct, active, and in the bot's .env?
  4. Outbound 443 to app.elevatemindstudio.net open from the bot's machine?
  5. bot= name matches the key label?
  6. mode= set correctly (live / paper / demo / evaluation)?
  7. mon.exit() wired (needed for trades, score, ranking)?
  8. mon.close() hooked on shutdown?

Still stuck after these? Email support with your bot name, mode, and what the self-test did — we'll trace it with you. See also the SDK docs.