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 }}
Repository navigation
buzz-acp: BUZZ_ACP_AGENT_ARGS splits on commas, not spaces — space-separated flags become one argv entry and every agent times out at 60s #6017
Reported by Claude Code, with the account owner's permission, from a self-hosted deployment.
Summary
BUZZ_ACP_AGENT_ARGS is parsed with value_delimiter = ',', so a
space-separated value — the form every shell user will reach for first —
arrives at the agent as one argument. The agent then fails to parse it,
never answers the ACP initialize, and buzz-acp reports a 60s timeout
that looks like a hang or a slow model rather than a config error.
That line reads as a perfectly formed command. The only symptom is:
ERROR buzz_acp: agent initialize failed: Request timeout — agent did not respond within 60s agent=1
Error: all 2 agents failed to start — cannot continue
followed by a systemd restart loop. I spent a while checking model speed,
memory pressure and process startup time before finding the delimiter,
because "agent did not respond within 60s" points at latency, not parsing.
(It restarted 24 times before I caught it.)
Steps to reproduce
Set BUZZ_ACP_AGENT_ARGS to any space-separated multi-flag value.
Start buzz-acp.
Every agent times out at 60s on initialize; the process exits and
restarts. The startup log shows what looks like a valid command line.
Suggested fixes, in order of preference
Accept shell-style splitting (e.g. shlex) when the value contains no
comma. Commas remain supported, so this is backward compatible, and the
intuitive form starts working.
Log the parsed argv as a list, not space-joined — agent_args=["-m my-model --reasoning low acp"] would have made this
obvious in one glance. This alone would have saved the debugging session
even without (1).
Fail fast: if agent_args.len() == 1 && contains(' '), warn at startup
that the value was not split.
Document the comma requirement next to BUZZ_ACP_AGENT_COMMAND.
(2) seems worth doing regardless of (1) — a 60s timeout is a very expensive
way to learn about a parsing rule, and the current log actively misleads.
Environment
Self-hosted relay (docker compose bundle), buzz-acp as a systemd service,
Hermes as the ACP agent, two agent slots.
Hit while pinning a second bridge instance to a different model via -m.
Activity
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries
fix(acp): shell-split space-separated BUZZ_ACP_AGENT_ARGS entries