Troubleshooting

Self-healing guidelines for diagnosing and resolving installation, initialization, and runtime environment issues with Contexa CLI.

Diagnosing with Contexa Doctor

Contexa always requires a JDK runtime. Database, Docker, and LLM checks depend on the features you selected in the installer. If you hit any issue during installation, scan your environment using the doctor command:

Shell
contexa doctor

Diagnostics check only what the selected installation path needs. Run contexa init --check to perform preflight checks and exit without changing the project, or use contexa doctor for a separate status report.

Common Issues and Fixes

① Permission Denied

Occurs when the installer script does not have write access to system binary directories (such as /usr/local/bin).

Error snippet: Permission denied to write /usr/local/bin/contexa

Resolution: the installer automatically falls back to ~/.local/bin when /usr/local/bin is not writable. Do not run the installer script itself with sudo; run the command below again.

curl -fsSL https://install.ctxa.ai/install.sh | sh

If ~/.local/bin is not on PATH, add it to your shell profile, open a new terminal, and run contexa --version.

② Docker not running

Occurs only when you selected local Docker-managed infrastructure, simulation, or distributed mode and the Docker service is inactive.

Error snippet: Docker daemon is not running or unreachable.

Resolution:

  • Windows / macOS: Launch Docker Desktop and wait for the status icon to turn green.
  • Linux: Start the systemd daemon:
    sudo systemctl start docker

③ PostgreSQL / Ollama Port Conflict

Happens when standard infrastructure ports (5432, 11434, etc.) are already bound by another database instance or container on your host machine.

Error snippet: Port 5432 is already in use on 127.0.0.1. Skip creating postgres container.

Resolution:

  • Inspect the existing service: Verify that the process holding the port is the intended PostgreSQL or Ollama instance. The CLI does not terminate it or rewrite settings arbitrarily; make the reused connection details match the infrastructure path you selected.
  • Isolated Simulation Mode: If you want to spin up isolated containers side-by-side with your existing stack, use the simulation installer. Ports are automatically shifted by +20000:
    contexa init --simulate

④ Ollama Model Missing

Occurs only when you selected Ollama as the AI provider and the required model files have not yet been pulled into the runtime environment.

Error snippet: Model 'qwen2.5:7b' is missing on Ollama server.

Resolution: Manually pull the missing model assets using docker command:

docker exec -it contexa-ollama ollama pull qwen2.5:7b
docker exec -it contexa-ollama ollama pull mxbai-embed-large

For low-spec or memory-limited environments, you can define the environment variable OLLAMA_CHAT_MODEL as a smaller variant (e.g. qwen2.5:3b or 1.5b) and synchronize it with your application.yml configurations.

⑤ No Contexa tables after adding only the Starter

This is expected in dependency-only state without @EnableAISecurity. Adding the Starter alone does not create Contexa filters, authentication providers, or the IAM schema. OSS and Enterprise tables are created and validated by the corresponding activated server runtime.

contexa reset does not revert every change

reset reverts only CLI-owned changes recorded in the installation manifest. It does not arbitrarily delete a Starter dependency that the user already owned or overwrite files edited after installation. If a conflict is reported, inspect the file and manifest, then resolve the user-owned change explicitly. Use contexa reset --simulate for a dry run.

⑦ Maven cannot resolve an ai.ctxa dependency

Stable 0.1.0 consumers need only mavenCentral(). Do not add Spring milestone/snapshot or Sonatype snapshot repositories to a normal consumer build. Immediately after publication, wait for Maven Central synchronization, then verify the coordinate is ai.ctxa:spring-boot-starter-contexa:0.1.0.