HTTP adapter requires url configuration
2 min read
HttpAdapter's constructor validates config.url before building a client, so
this fires at startup rather than on the first dispatch.
What causes it
You selected HTTP mode without giving it an endpoint:
devpilot bridge connect --mode http # no --http-url
Or a config file sets the mode but omits the URL, or supplies it under a different key than the adapter reads.
How to fix it
devpilot bridge connect --mode http --http-url http://127.0.0.1:3001
Point it at whatever speaks the bridge protocol — the ao daemon, your own
service, anything honouring the published wire contract.
Why the check is in the constructor
Validating at construction rather than at first use is a deliberate choice, and it is the same instinct as guards that throw rather than return.
A dispatch-time check means the process starts, reports healthy, registers a machine, and appears to be working. The failure arrives later, once a real issue has been assigned — at which point the symptom is a dispatch that went nowhere, which is a far worse thing to debug than a process that refused to start.
Configuration errors should be startup errors. The window between "started" and "first used" is where a misconfigured service does its most confusing damage.
A related adapter has the same shape: claude-session requires sessionApiUrl
unless a transport is injected directly, and validates it in the same place for
the same reason.
Verifying the endpoint before you rely on it
Speaking HTTP is not the same as speaking the bridge protocol. A service can accept the connection and return 200 to something entirely different from what the adapter expects.
curl -s -X POST http://127.0.0.1:3001/dispatch -d '{}' -i | head -1
A 404 there means the endpoint exists but the paths do not match — which is the
failure mode that consumed real time when the ao daemon changed its API. The
adapter called /dispatch and /jobs/:id/status; the daemon had moved to
POST /api/v1/sessions. Both sides were healthy and neither could talk to the
other.
Check the shapes, not just the connection.
