Spaces:
Sleeping
Sleeping
akashyadav758
Harden monitor (gate all routes), swap ChatGPT backend to free-Chatgpt-api, clean repo
5c7f4b5 Troubleshooting β check here first
Every issue we actually hit, and the fix.
Deploy / build
| Symptom | Cause β Fix |
|---|---|
pre-receive hook declined: You are not authorized to push |
The token in the origin URL isn't the Space owner's. Use an akash1313 token with repo.write (see deployment.md). |
Repository not found on push |
Remote points to a Space that doesn't exist. git remote -v and fix the name (we deploy to akash1313/selfapi-v2). |
Build BUILD_ERROR after bumping a server |
go.mod Go version > build-stage image. Raise the FROM golang:X in the Dockerfile. |
Python externally-managed-environment during pip |
Debian 12 PEP-668. We use pip3 install --break-system-packages (already in Dockerfile). |
| Frequent restarts | Normal: every git push and every secret change rebuilds. Batch edits into one push. Not a CPU/RAM issue (cpu-basic = 2 vCPU / 16 GB; usage ~1β2 GB). |
API gateway
| Symptom | Cause β Fix |
|---|---|
All /gpt /gemini /flow return 503 |
API_KEY not set on the server. Set the secret (fail-closed by design). |
401 |
Missing/wrong Authorization: Bearer <key>. |
502 backend unavailable |
That server is still booting or crashed. Check its log /home/chrome/{chatgpt,gemini,flow}.log. |
404 through the gateway |
Path forwarded but wrong on the backend β check the route in ../HOWTOUSE.md. |
Runtime / browser
| Symptom | Cause β Fix |
|---|---|
| Login lost after restart | DATABASE_URL unset or DB unreachable (HF). Set the Neon secret; verify a row in chrome_profile. |
| ChatGPT Cloudflare "verify you are human" loops | UA/OS mismatch. The UA must be Linux (the Space runs Linux) β it's set in start_hf.sh and free-Chatgpt-api/cookies.go (Chrome 145). If it still loops, it's the datacenter IP (HF=AWS) β use a residential --proxy-server. |
extensionConnected:false / has_flow_key:false on /β¦/health |
The in-Chrome extension hasn't connected to its server yet. It connects when (a) Chrome has loaded the extension and (b) you're logged in to that service. Open the monitor UI, log in, wait. Extensions auto-retry (~5 s reconnect alarm). |
Extension never connects + API calls hang forever (DidStartWorkerFail in chrome.log) |
Chrome was launched with renderer-capping flags (--renderer-process-limit=1, --process-per-site, --no-zygote). Each extension's MV3 service worker is its own renderer and the chat flow injects via executeScript; capping renderers starves them β workers fail to start and executeScript hangs. Removed from start_hf.sh β keep Chrome multi-process (HF has 16 GB). The UI chatting fine while the API hangs is the tell. |
| Backend server logs | GET /logs/{chatgpt,gemini,flow,monitor} (API-key gated) tails each server's log without shelling into the container. |
chrome://extensions/ empty, no error |
Branded Chrome ignoring --load-extension β must use Chrome for Testing (already in Dockerfile). |
Failed to connect to the bus / DidStartWorkerFail in chrome.log |
Harmless container warnings β not a crash. |
| "Restore pages?" popup | Handled by the exit_type=Normal Preferences injection in start_hf.sh. |
Self-host Docker
| Symptom | Cause β Fix |
|---|---|
| Port collision on 9225/8000/8101 | Don't add separate server containers β the chrome image already runs all 3. docker-compose.yml has only the chrome service by design. |
APIs return 503 locally |
Add API_KEY=β¦ to .env (compose passes it to the chrome service). |
| Profile not persisting | Don't use down -v (that deletes the chrome-profile volume). |