The ao-cli orchestrator mode is deprecated and non-functional
2 min read
This throw is intentional and immediate. The adapter does not attempt a dispatch.
What happened
ao inverted its architecture. The commands this adapter was built on no longer
exist: ao list and ao status <id> are gone, and ao spawn no longer accepts
a prompt. The adapter cannot work, and no amount of configuration fixes it.
Why it throws instead of degrading
The comment above the throw is the important part:
Failing loudly here is deliberate. Silently dispatching into a broken adapter looks like "the agent never started" and costs hours to diagnose; the previous behaviour was exactly that.
A dispatch into a broken adapter produces no error and no agent. Work sits queued, the fleet view shows nothing running, and there is no failure anywhere to follow. That symptom is indistinguishable from a network problem, a token problem, or a routing problem — so you check all three before suspecting the adapter.
An explicit throw with a fix in the message turns a multi-hour hunt into a one-line change.
How to fix it
Point at the ao daemon over HTTP instead:
devpilot bridge connect --mode http --http-url http://127.0.0.1:3001
The wider lesson
The adapter's test harness had been passing throughout. It exercised the adapter against a fake that spoke the format the adapter expected — which confirmed our internal consistency and nothing whatsoever about the world.
A test double built from your own assumptions cannot tell you those assumptions went stale. Checking against the real tool is what surfaced this.
Checking before you migrate
Before switching modes, confirm the daemon is actually listening:
curl -s http://127.0.0.1:3001/health
If that returns nothing, the daemon is not running and changing the mode will move you from one clear failure to a less clear one — a connection refused rather than a deprecation notice.
Worth knowing that the npm-published @composio/ao-cli has lagged the real
tool considerably, so the version you have installed may not match what the
daemon expects either. Check the daemon's own version rather than the CLI's.
