Skip to Content
Deploy & Operate🩺 Troubleshooting🩺 Troubleshooting

Troubleshooting

First checks

  1. Run docsgpt doctor (or python -m docsgpt doctor in a source checkout). It checks the settings file, PostgreSQL, Redis, the model provider and the default model. See the CLI reference.
  2. Read the API and worker logs. With docsgpt up, run docsgpt logs -f. With Docker Compose, run docker compose logs -f backend worker with the same -f file and --env-file you started it with. On Kubernetes, see Kubernetes troubleshooting.
  3. Check that a worker is running. The API hands query embeddings, ingestion and every background job to the Celery worker, so most β€œnothing happens” problems start there.

Common symptoms

SymptomLikely causeFix
Searches wait about a minute or fail at once, and answers ignore your documents, with no errorNo worker is consuming the embeddings queueStart a worker. A worker started with -Q must list embeddings. To run without one, set EMBEDDINGS_DELEGATE_TO_WORKER=false or EMBEDDINGS_BASE_URL. See Where the model runs.
Uploads never finish, or fail after parsingNo worker, or INTERNAL_KEY differs between the API and the worker, or the worker can’t reach the APISet the same INTERNAL_KEY on both, and check that the worker can reach the API at WORKER_API_URL (or API_URL when that is unset). See Secrets to set before going live.
Scheduled agent runs and source syncs never fireNo Celery beat scheduler is runningRun the worker with -B, or run docsgpt beat. See Background jobs.
Notifications never appear, a dropped answer doesn’t resume, a paired device never receives commands, or artifact downloads return 404The API runs under flask run, which leaves out the ASGI routesServe docsgpt.asgi:asgi_app, as docsgpt api and the Docker images do. See ASGI-only features.
Notifications still don’t arrive under ASGIRedis, the event stream or the clientFollow the SSE notifications runbook.
Other machines can’t open DocsGPTThe ports are published on 127.0.0.1 onlySee Decide who can reach it for the setting each install uses.
Everyone is signed out after a container is recreatedJWT_SECRET_KEY isn’t set, so each container generates its ownSet JWT_SECRET_KEY on every API and worker process. See Secrets to set before going live.
Answers come from the wrong provider, or the model list is emptyLLM_PROVIDER, LLM_NAME or the provider’s key doesn’t matchdocsgpt doctor reports the resolved default model. See Cloud providers or Local inference.

Guides with their own troubleshooting

If none of these fit, ask on DiscordΒ  or open an issue on GitHubΒ  with the docsgpt doctor output and the relevant log lines.