Skip to main content

Common Issues

Startup Issues

Symptom: Risoluto exits with missing_tracker_api_key on startup.Cause: tracker.api_key resolves to an empty value.Fix: Run the setup wizard at /setup and re-enter your Linear API key, or set the environment variable:
Symptom: account/read failure during startup.Cause: The Codex app-server cannot authenticate with the configured provider.Fix: Verify your auth mode:
Symptom: EADDRINUSE: address already in use :::4000Cause: Another process is bound to the port.Fix:
Symptom: secrets.enc decryption failure on startup.Cause: The MASTER_KEY environment variable doesn’t match the key used to encrypt secrets.Fix: Use the correct master key, or factory reset:
Factory reset deletes all stored credentials. You will need to re-run the setup wizard.

Agent Failures

Symptom: Agent exit code 137, OOMKilled=true in container inspect.Cause: The agent exceeded the container memory limit.Fix: Increase the memory allocation:
Verify OOM status:
Symptom: Issue stays in agent_running state with no new events.Cause: The agent is stuck — infinite loop, network timeout, or model API hang.Fix: Risoluto has two stall timeouts: codex.stallTimeoutMs (default: 5 minutes) kills silent turns, and agent.stallTimeoutMs (default: 20 minutes) kills the entire agent. To kill manually:
Reduce the stall timeout for faster detection:
Symptom: thread/start failed because a required MCP server did not initializeCause: This is a Codex runtime error, not a Risoluto bug. The agent’s MCP configuration references a server binary that is missing or failing inside the container.Fix: Check codex.sandbox.extraMounts and ensure all required MCP server binaries are available inside the container. Verify with:
Symptom: Issue marked as failed after 5 attempts.Cause: The agent could not complete the task within the retry budget.Fix: Inspect the attempt timeline to understand why:
Options:
  • Simplify the issue description
  • Increase agent.maxContinuationAttempts
  • Switch to a more capable model via per-issue override
  • Force a retry: transition the issue back to the trigger state

Docker Problems

Symptom: Cannot connect to the Docker daemonFix:
Verify: docker info should complete without errors.
Symptom: No such image: risoluto-codex:latestFix: Build the sandbox image:
If using a custom image, verify it exists:
Symptom: permission denied while trying to connect to the Docker daemon socketFix: Add your user to the docker group:

Network Issues

Symptom: Poll errors with ECONNREFUSED or ETIMEDOUT to api.linear.app.Cause: Network connectivity or DNS issues, or Linear API outage.Fix:
Check Linear Status for outages.
Symptom: Agents fail with 429 status codes.Cause: Too many concurrent agents hitting your API rate limit.Fix: Reduce concurrency:
Symptom: 401/403 errors from Linear, OpenAI, or GitHub APIs.Cause: Credentials have expired or been revoked.Fix: Re-enter credentials via the setup wizard at /setup. Risoluto validates credentials before storing them and surfaces the upstream error message.

Linear Integration

Symptom: In Progress issues in Linear are not dispatched by Risoluto.Cause: The issue’s project or state doesn’t match Risoluto’s configuration.Fix:
Ensure the issue belongs to the configured project and is in a state that maps to the trigger state.
Symptom: Webhook is configured but Risoluto doesn’t react to issue changes.Cause: Webhook URL is unreachable from Linear’s servers, or the webhook secret doesn’t match.Fix: Verify webhook delivery in Linear’s webhook settings (Settings > API > Webhooks). Check that the webhook URL is publicly reachable (ngrok, Cloudflare Tunnel, or public IP).

Diagnostic Commands

System state

Issue inspection

CLI log inspector

Container inspection

Environment Variables

Set LOG_LEVEL=debug for verbose diagnostic output when troubleshooting startup, dispatch, or agent lifecycle issues. This logs every poll cycle, workspace operation, and container lifecycle event.

What’s Next

Observability

Prometheus metrics, SSE events, audit logs, and data persistence.

FAQ

Common questions about models, privacy, and configuration.

Monitoring Stack

Set up Prometheus and Grafana for dashboards and alerting.

Security

Secure the API with write tokens and bind address controls.
Last modified on April 10, 2026