You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 19, 2026. It is now read-only.
When the Devin CLI on PATH does not match DEVIN_PIN (3000.10.27), oompa account login <profile> --provider devin fails with only "Oompa could not complete the request safely." and oompa account show <profile> --provider devin --json reports "authentication":{"provider":"devin","signedIn":null} with no recovery block and no reason. The operator has no way to learn that the runtime was refused.
Reproduction
The Devin CLI self-updates: on this machine ~/.local/bin/devin is a symlink to cli/_versions/current, which moved from 3000.10.27 to 3000.10.31 during the day. Then:
oompa account add devin-acceptance
oompa account show devin-acceptance --provider devin --json → signedIn: null, no recovery.
oompa account login devin-acceptance --provider devin in a foreground terminal → oompa: Oompa could not complete the request safely.
Cause chain: PinnedDevinRuntimeManager.readAccount maps RUNTIME_MISMATCH (and PROTOCOL_ERROR, PROTOCOL_LIMIT) to readiness unverified; the service projects that as signedIn: null; devinAccountStatusResponseSchema in src/cli.ts requires a recovery block whenever signedIn is null, so the CLI's login preflight fails schema validation and renders INTERNAL. Pointing PATH at the 3000.10.27 binary makes the same commands report signedIn: false and proceed.
Expected
account show should distinguish "runtime refused" from "unknown authentication", for example authentication.signedIn: null plus a closed runtime: { status: "mismatch", observed: "3000.10.31", pinned: "3000.10.27" } or an UNAVAILABLE failure with reason: devin_runtime_mismatch and nextCommand: oompa doctor --json, matching how Codex reports codex_runtime_mismatch.
account login should render that same closed failure instead of INTERNAL.
oompa doctor --offline should report the Devin runtime status next to Codex and Claude.
Related
The Devin CLI auto-updates in place, so an exact pin will drift on every operator machine within days. Either the pin policy needs a documented repin cadence with the /usage fixture re-captured per version, or the runtime should admit a reviewed set of versions.
Summary
When the Devin CLI on PATH does not match
DEVIN_PIN(3000.10.27),oompa account login <profile> --provider devinfails with only "Oompa could not complete the request safely." andoompa account show <profile> --provider devin --jsonreports"authentication":{"provider":"devin","signedIn":null}with norecoveryblock and no reason. The operator has no way to learn that the runtime was refused.Reproduction
The Devin CLI self-updates: on this machine
~/.local/bin/devinis a symlink tocli/_versions/current, which moved from 3000.10.27 to 3000.10.31 during the day. Then:oompa account add devin-acceptanceoompa account show devin-acceptance --provider devin --json→signedIn: null, no recovery.oompa account login devin-acceptance --provider devinin a foreground terminal →oompa: Oompa could not complete the request safely.Cause chain:
PinnedDevinRuntimeManager.readAccountmapsRUNTIME_MISMATCH(andPROTOCOL_ERROR,PROTOCOL_LIMIT) to readinessunverified; the service projects that assignedIn: null;devinAccountStatusResponseSchemain src/cli.ts requires arecoveryblock wheneversignedInis null, so the CLI's login preflight fails schema validation and rendersINTERNAL. Pointing PATH at the 3000.10.27 binary makes the same commands reportsignedIn: falseand proceed.Expected
account showshould distinguish "runtime refused" from "unknown authentication", for exampleauthentication.signedIn: nullplus a closedruntime: { status: "mismatch", observed: "3000.10.31", pinned: "3000.10.27" }or anUNAVAILABLEfailure withreason: devin_runtime_mismatchandnextCommand: oompa doctor --json, matching how Codex reportscodex_runtime_mismatch.account loginshould render that same closed failure instead ofINTERNAL.oompa doctor --offlineshould report the Devin runtime status next to Codex and Claude.Related
The Devin CLI auto-updates in place, so an exact pin will drift on every operator machine within days. Either the pin policy needs a documented repin cadence with the
/usagefixture re-captured per version, or the runtime should admit a reviewed set of versions.