This documentation is for the federal deployments of Devin. Back to Devin Docs
devin airgap doctor is the first thing to run when the CLI or Desktop does not start, cannot reach a model, or shows an error code. It runs every local and network check the agent depends on, prints one line per check, and exits nonzero if anything fails. This page explains each check and what to do about it, then describes what to collect for a support request.
Run doctor
Run it as the user who will use Devin, in the same environment (the API-key variables must be set in that shell):<status> <check> <detail>. Coded failures and warnings prefix the detail with the error code, for example FAIL model 'llama-3.3-70b': endpoint reachability NET003: ....
For automation,
--json prints {"ok": <bool>, "checks": [...]} where each check has check, status (pass, warn, fail), and detail, plus code on coded warnings and failures and latency_ms on a passing inference probe:
Check reference
Checks run in the order below. Later checks that depend on an earlier failure are skipped rather than repeated: if the models file cannot be found, there is nomodels file parse line and no endpoint probes.
license
Loads and verifies the license file (see License).
models file path
Resolves the models file location (/etc/devin/models.json, C:\ProgramData\Devin\models.json on Windows, or DEVIN_MODELS_FILE) and confirms a file exists there.
config dir writable and data dir writable
Creates the product config and data directories if needed and writes a probe file to each.
CA bundle
Reports whether DEVIN_CA_BUNDLE is set and loads it.
models file parse and model '<name>': API key env var
Parses the models file with the same validator as devin models validate, then checks that each model’s api_key.env variable is set in the current environment.
custom subagent profiles
Lists custom subagent definitions from agents/**/AGENT.md. none configured or <n> profile(s) loaded passes; CFG005 names a definition that could not be parsed. This check is shared with the standard devin doctor and is unrelated to the air-gapped configuration.
model '<name>': endpoint reachability
Sends GET {base_url}/models with the model’s API key, using a 10-second timeout and the same TLS configuration inference uses.
model '<name>': inference conformance
Skipped when reachability failed at the transport level. Sends a one-token request to prove the endpoint speaks the configured API: POST {base_url}/chat/completions with max_tokens: 1 for chat_completions, or POST {base_url}/responses with max_output_tokens: 16 for responses.
Common problems
What to send to support
Collect the following on the affected workstation. Review each file before sending it; none of them is uploaded automatically.-
The doctor output:
The detail strings contain your endpoint URLs and hostnames but never API-key values.
-
The redacted diagnostics report:
The report records versions, whether each configuration file exists and parses, model names, whether each API-key variable is set, and audit-log statistics. It never contains prompts, code, file contents, secret values, endpoint URLs, or environment-variable values.
-
The exact error message shown to the user, including its code, and the output of
devin --version. -
For SSO problems, the relevant
authevents from the audit log (error_codeandactionfields) and the matching entries from your IdP’s logs.
sso_tokens.toml, or sessions.db.
