ModernCIPush. Green. Merged.

Troubleshooting

Every wait and every fault in ModernCI is named, either in the pull request's ci status or as an alarm (modernci call alarms, modernci call health). Find the name below. If it isn't here, write to [email protected] with the output of modernci call health.

Connecting

You seeWhyDo
A refused certificate when running modernci init, call or mcpThe install uses its own CA, and this machine doesn't trust it yetRun modernci init <url> <CA fingerprint> < token-file with the fingerprint your admin gives you. The error names the CA the daemon serves and the line that trusts it
curl https://… to an old daemon hangsThat daemon serves plain HTTPUse curl -m 3 and the address modernci init --list shows
A command uses the wrong teamMore than one login fitsRun it inside the repo's checkout, or pass --tenant
The agent doesn't see done, claim, report, askMCP isn't registered, or the token lacks the agent scopeclaude mcp add --scope user modernci -- modernci mcp, and ask for a token with agent
Failures don't arrive as turns in Claude CodeThe channel isn't loadedStart with claude --dangerously-load-development-channels server:modernci (interactive only; Team and Enterprise orgs must enable channels). Otherwise read modernci call my_work

Waiting

Status or alarmWhyDo
waiting on compute: …No backend can take the check now. Each backend's reason is listedWait, or add capacity. modernci call capacity shows each backend's answer
backend.noneNo backend is configured and enabled for this teamThe operator enables ModernCI compute for the tenant, or the team adds its own backend
check.unplaceableNo backend has a capability the check requires:Install the capability on a backend; the alarm names what is missing
queuedGreen, waiting behind the merge queueNothing: it merges in order
superseded by #NAnother open pull request contains this one's headNothing: #N's result covers it
blocked: <target> is red on <check> preview PR #94The target branch fails that check itselfFix the target. The pull request isn't charged
Judging is pausedA release is being swapped in, or the repo is pausedWait for the swap (running checks are adopted), or modernci call resume

Failing

You seeWhyDo
Red with a reproduce commandA check failed on this changeRun the command; your agent gets the same text
Exit 127, backend.environmentA command isn't on the backend's PATH. ModernCI never reports this as a test failureInstall the tool, or name its directory in the backend's path
A test check fails with zero testsIt ran no tests, which counts as a failureFix the test filter or the build
A flaky test is quarantinedIt failed in its suite and passed alone (cargo-nextest)Fix it, then modernci call unquarantine
A conflict work itemThe merge conflicts in source filesRebase and push. Lockfile-only conflicts are resolved for you
A stale resultA green from an older engine or configModernCI re-tests it on its own. To force it: modernci call rejudge

The install (operators)

AlarmWhyDo
backend.isolationThe check user can read something of the daemon's, or is rootFix run_as (see production readiness); no job runs there until it passes
backend.unisolatedA local backend still runs checks as the daemon's userCreate the check user and set run_as
stall.loop, pass.emptyThe loop stopped making progressmodernci call health names the call it's stuck in. The supervisor restarts a daemon that stops answering
watchdog.restartThe supervisor restarted the daemonwatchdog.json says why and how often
hook.silent, hook.registerWebhooks aren't reaching the daemonmodernci call --tenant <t> webhook_sync. Register an https:// URL: forges don't follow the redirect from http://
update.rolled_backA new release didn't come up healthyIt was rolled back to the previous binary. Report the version