Troubleshooting
Run edgeproof doctor first. It checks all subsystems and mirrors the hints below.
config.load fails
Symptoms: Doctor shows config.load: fail with a missing-variable message.
Fix: Run edgeproof init to generate a valid .env. Or manually set the missing env var. Common culprit: APCA_API_KEY_ID or APCA_API_SECRET_KEY not set.
LLM connectivity fails
Symptoms: llm.connectivity: fail, "connection refused" or timeout.
Fixes:
- Ollama:
ollama servemust be running. Check withcurl http://localhost:11434/v1/models. - LM Studio: Open LM Studio, load a model, enable the local server.
- OpenAI-compatible: verify
LLM_API_BASE_URLandLLM_API_KEYin.env.
Alpaca account fails
Symptoms: alpaca.account: fail, 401 or wrong endpoint.
Fixes:
- Verify keys at app.alpaca.markets
- Paper keys end in
PKT...; live keys inAKI.... Make sureALPACA_PAPER_TRADEmatches your key type.
Clock skew warning
Symptoms: alpaca.clock: warn, skew >2s but <30s.
Fix: Enable NTP: sudo sntp -sS time.apple.com (macOS). Clock skew >30s causes a hard fail that blocks trading. Alpaca's clock is authoritative for all time-sensitive checks.
Discord channel not loading
Symptoms: discord.channel: fail, "no messages found" or "navigation timeout".
Fixes (puppeteer mode):
- Make sure Chrome is running with
--remote-debugging-port=9222 - Verify
CHROME_DEBUGGING_URLpoints to the right port - The channel must be visible (scrolled into view) in the browser
Fixes (bot mode):
- Verify
DISCORD_BOT_TOKENis valid - The bot must have been added to the server and have
Read Messagespermission on the target channel - Check
DISCORD_CHANNEL_IDS, these are numeric IDs, not names
Supervisor won't start (already running)
Symptoms: EdgeProof is already running (pid XXXX).
Fix: If the process isn't actually running (crash left a stale PID file):
rm output/supervisor.pid
edgeproof start
Or use edgeproof stop which handles stale PIDs gracefully.
Live trading locked (license)
Symptoms: edgeproof start with ALPACA_PAPER_TRADE=False prints LICENSE_REQUIRED.
Fix: Activate your license:
edgeproof license activate EP-XXXX-XXXX-XXXX-XXXX
If you have open positions and your license expired, EdgeProof starts in exit-only mode, where positions are managed but no new entries are taken until you renew.
Open positions not closing
Symptoms: Stop-loss or take-profit rules aren't firing.
Checks:
- Is
edgeproof statusshowing thepositionsrole as running? - Is
STREAMING_ENABLED=true? Streaming provides faster price updates than polling. - Check
output/logs/positions*.logfor any error lines. - Is the market open? Exits may be delayed if Alpaca's order queue is backed up.
Dashboard 404
Symptoms: edgeproof dashboard opens but shows a 404.
Fix: Run npm run build if you're running from source (installs from npm are always pre-built). The asset must be at dist/ledger/public/index.html.