-
Notifications
You must be signed in to change notification settings - Fork 1
Troubleshooting
Quick fixes for common issues. Each section includes the symptom, cause, and fix.
Check your data directory first. The server prints
Data directory: <path>on startup — that's where it reads config, cookies, browser profile, and access key. The default is thedata/folder at the project root, overridable withOMNIVOX_DATA_DIR. If things aren't where you expect, check for an override in:
- Environment:
echo $OMNIVOX_DATA_DIR.envfile in the project rootdocker-compose.ymlenvironmentsectionIf it's set anywhere, that's where the server is reading/writing — not the default
data/folder.
Symptom: npm start in omnivox-connection/ fails or nothing happens.
Fix:
cd omnivox-connection
rm -rf node_modules
npm install
npm startIf you're on Linux and see GPU/display errors, make sure you have a desktop environment. The Electron app cannot run headless — it opens a real browser window.
Symptom: The Electron window opens but shows a white/blank page.
Cause: Network issue, or Omnivox is down.
Fix: Check that you can access https://mobl.omnivox.ca in a regular browser. If Omnivox is up, try restarting the Electron app.
Symptom: You logged in and see the Omnivox home page, but the app never offers cookies.json / config.json to save.
Cause: The app captures the session when Omnivox calls WebUI.SetDefaultPage internally. If the login flow changed or was interrupted, this command may not have fired.
Fix: Close the window and try again. Make sure you complete the full login — enter credentials, go through any verification steps, and wait for the main Omnivox portal to load.
Symptom: You saved cookies.json and config.json but can't find them.
Cause: The app saves each file through a save dialog — they went wherever you chose (typically your Downloads folder).
Fix: Find them and move them into your data folder — the app does not place them there for you. See Setup — the data folder.
Symptom: Server crashes on npm start with one of these errors.
Cause: The session files aren't in the data folder — the connection app doesn't place them automatically; you save them yourself and move them there.
Fix:
- Run the Electron app, complete login, and save both files (see above)
- Place them in the data folder and verify:
ls data/cookies.json data/config.json
- If deploying to a remote server, copy the files into the server's data folder:
scp cookies.json config.json user@server:omnivox-mcp/data/
- Make sure
OMNIVOX_DATA_DIRpoints at that folder (unset, the server usesdata/at the project root)
Symptom: Server crashes saying config.json is missing required fields.
Cause: The config.json file is corrupted or incomplete — usually from an interrupted auth session.
Fix: Re-run the Electron app:
npm run reset
cd omnivox-connection && npm startSymptom: Error mentioning missing shared libraries, libnss3, libatk, libgbm, etc.
Cause: Chromium needs system libraries that aren't installed.
Fix (Debian/Ubuntu):
sudo apt-get update && sudo apt-get install -y \
ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 \
libatk1.0-0 libcups2 libdbus-1-3 libdrm2 libgbm1 libgtk-3-0 \
libnspr4 libnss3 libx11-xcb1 libxcomposite1 libxdamage1 \
libxfixes3 libxrandr2 libxshmfence1 xdg-utilsThe Dockerfile already includes these — this only affects native Linux installs.
Symptom: EADDRINUSE: address already in use :::3000
Fix: Either kill the existing process or use a different port:
PORT=3001 npm startSymptom: Tools/endpoints that were working now return errors or empty data.
Cause: The Omnivox session expired. Sessions don't last forever — Omnivox may invalidate them after inactivity or periodically.
Fix: Re-authenticate:
npm run reset
cd omnivox-connection && npm start
# Log in, save cookies.json + config.json, close the window
# Place both files back into the data folder
cd .. && npm startnpm run reset clears the stale browser profile and session files from the data folder (it honors OMNIVOX_DATA_DIR), so the server starts fresh. The access key is cleared too — update clients with the new one after restart.
Symptom: Server starts but hangs or errors with a timeout on the Skytech check.
Cause: The Omnivox page didn't load properly — usually a session issue or network problem.
Fix:
- Check your internet connection
- Verify Omnivox is accessible:
https://mobl.omnivox.ca - Re-authenticate with
npm run reset+ Electron app
Symptom: URLs from get-document-link or get-assignment-file-link don't work.
Cause:
- 401: The web token expired (tokens last 15 minutes). Generate a new link.
-
403:
MCP_SERVER_URLis not set or doesn't match the URL you're accessing. Download link tools require the server to be publicly accessible.
Symptom: You copied cookies.json and config.json to the server but it still says files not found.
Cause: Files aren't in the directory the server actually reads.
Fix: The server reads the data folder from OMNIVOX_DATA_DIR, falling back to data/ at the project root. Put the files where the server looks:
mkdir -p data
cp cookies.json config.json data/
npm startSymptom: Server can't read or write the data folder.
Fix:
chmod 700 data
chmod 600 data/*.jsonSymptom: Container starts but crashes with "Cookie file not found."
Cause: The volume mount isn't mapping to a folder that has the session files.
Fix: The docker-compose.yml mounts the host data folder (from OMNIVOX_DATA_DIR, default ./data) into the container at /data/omnivox. Make sure the host folder has the auth files before starting:
ls data/cookies.json data/config.json
docker compose up --buildSymptom: Puppeteer errors about sandbox or GPU.
Fix: The Dockerfile installs Chromium dependencies, but if you're using a custom base image, make sure the deps from the Dockerfile's apt-get install are present. Puppeteer runs with --no-sandbox in containers by default.
Symptom: Your MCP client (Claude Desktop, etc.) fails to connect to http://localhost:3000/mcp?key=....
Fix:
- Verify the server is running:
curl http://localhost:3000/mcp?key=YOUR_KEY - Check the access key matches
<data folder>/accessKey.txt - Make sure you're using the Streamable HTTP transport, not STDIO
Symptom: 401 or 403 on every request.
Fix: The access key is in <data folder>/accessKey.txt. If you've run npm run reset, a new key is generated on the next server start — update your client config with the new key.
Open an issue: https://github.com/Beat-YT/omnivox-mcp/issues