Skip to content

Übersetzung in Arbeit

Diese Seite wird automatisch aus dem englischen Original gespiegelt, bis eine deutsche Übersetzung vorliegt. Der Inhalt ist auf Englisch — die Navigation und Oberfläche sind bereits übersetzt.

Troubleshooting

The first stop when something is wrong. Skim the section that matches your symptom.

Login and account

"Invalid credentials" but I'm certain the password is right

  • Caps lock check — the username field is case-sensitive (operator_id, lowercase by convention).
  • Password manager autofill sometimes inserts a trailing space; click the field and press End to verify nothing is past the visible characters.
  • If you recently changed your password and it isn't taking, double-check you typed the new one — the in-app Change Password form takes effect immediately. If you're locked out entirely, use the email password-reset flow instead (this requires SMTP to be configured; see below).

"Please verify your email" loop

  • Check spam / promotions folders for the verification mail.
  • The verification link expires after 60 minutes (default EMAIL_TOKEN_TTL); from /login use Resend verification if available, or request a fresh registration with the same email.
  • Verification email only sends when SMTP is configured (EMAIL_* env vars). Email delivery is off by default, so on an instance without SMTP no verification mail will arrive — contact the operator of your Atlas instance.

"Session expired" mid-workflow

  • Your refresh token reached its hard limit. Sign in again — your watchlist, alerts, and saved screens are intact.
  • Frequent expirations usually mean clock skew on a self-hosted backend; verify NTP on the host.

Workspace and panels

Dashboard renders blank with the sidebar visible

  • Open the browser DevTools → Network tab; reload. If /api/me returns 401, your session expired (sign in again). If it returns 5xx, the backend is unreachable — check the backend logs.
  • A failed Cesium tile load (the globe) doesn't blank the dashboard, but a missing VITE_API_URL build var does. Confirm the build was run with the right env.

A panel is empty / "no data"

  • Confirm the data provider for that panel is configured. The Market panel needs EODHD_API_KEY; the Globe AIS layer needs AIS_ENABLED=true and AISSTREAM_API_KEY (AIS is off by default). See API keys.
  • For symbols specifically: the symbol may not be indexed by the upstream provider. Try a different ticker to isolate.

Switching panels feels laggy

  • The first switch loads bundle chunks (route-based code splitting). Subsequent switches are instant.
  • For a sustained slowdown, check the browser console for a runaway re-render loop and refresh.

"Failed to fetch" toasts

  • The frontend cannot reach the backend. In dev, confirm the backend is running on the URL pointed at by VITE_API_URL (default http://127.0.0.1:8000). In prod, check the reverse proxy.

Globe

Pins are missing for a vessel/aircraft I expect to see

  • Layer might be off — check the AIS / ADS-B toggle in the right rail (v / a shortcuts).
  • Sub-bar filter might be too tight (Saved-only, name filter) — clear filters.
  • Coverage gap or transponder off — see Data delays & limits.

Globe is slow / dropping frames

  • Cesium prefers a discrete GPU. On integrated graphics with hundreds of pins, drop the layer with the most points or zoom in to cluster.
  • Browser hardware acceleration must be on — check browser settings.

"Cesium token invalid" overlay

  • VITE_CESIUM_ION_TOKEN is missing or stale. Get a fresh token from Cesium Ion and rebuild the frontend.

Market panel

Quote is permanently "delayed"

  • The exchange or plan may only provide delayed data upstream; the badge is correct. Quotes come from EODHD (the primary source); the optional Finnhub integration adds US-equity realtime when configured. Try a different exchange to confirm.
  • Quotes reach the browser by periodic REST polling (~30s), not a live stream — if a value looks stale, wait for the next poll or refresh.

Fundamentals show "—" for many fields

  • EODHD coverage gap on emerging markets, micro-caps, or recently-IPO'd names. Try a major-exchange peer to confirm.

Chart shows a strange spike that disappears on reload

  • A single bad tick from upstream. EODHD typically corrects on the next pull; the cache TTL is short (~5 min for intraday).

Alerts

Alert created but never fires

  • Verify state in the alerts panel — tracking is normal (within 1% of trigger), inactive is paused.
  • For market-hours alerts, confirm the symbol's market is currently open.
  • For email delivery, check your spam folder and verify the address in Settings → Profile.

Alerts firing constantly on a closed position

  • They don't auto-prune. Disarm or delete from the alerts panel.

AI chat

Empty / generic responses with no panel context

  • The AI grounds in your active panel. Switch to or focus the panel you want it to read before asking.
  • News/transcript summaries silently truncate beyond the model's context window — narrow the screen or transcript section.

"AI is offline"

  • Backend cannot reach the configured model provider. Check backend logs for the AI route.

Symbol search returns nothing

  • Check the asset class pill (All / Equity / FX / Crypto / Commodity) — it's filtering.
  • Fuzzy name search needs ~3 characters; very short queries return only exact-prefix matches.

Subscription and billing

Plan upgraded in Stripe but Atlas still gates the feature

Stripe portal won't open

  • Pop-up blocked. Allow pop-ups for the Atlas origin and retry.

Self-hosted specifics

Backend won't boot — KeyError: SECRET_KEY

  • That env var is required. Generate a long random string and set it before the boot command.

Backend logs failed to connect to redis

  • REDIS_URL is wrong or Redis isn't up. The cache layer is required for rate limiting and session refresh — Atlas won't run without it.

Migrations fail mid-run

  • Don't manually edit the schema. Check the failed migration's SQL, fix the underlying problem (usually a manually-edited row), and re-run alembic upgrade head.

CORS errors in browser console for prod

  • The frontend's VITE_API_URL must match the backend's allowed origins. In a single-domain deploy, set both to relative paths or the same canonical hostname.

Still stuck

Open an issue with:

  • What you did.
  • What you expected.
  • What happened (with browser console + backend logs trimmed to the relevant ~30 lines).
  • Atlas version (from Changelog or /health endpoint).
  • Browser + OS.

For security-sensitive reports, follow the disclosure path in SECURITY.md and do not post a public issue.

Released under the project license. Public sources only — no proprietary or restricted data.