FAQ
Which model does the agent use?
Which model does the agent use?
sonnet. OpenCode takes provider/model. If you leave the model on Use runner default, the runner’s default applies.Does the agent push to my main branch?
Does the agent push to my main branch?
Does it merge pull requests?
Does it merge pull requests?
Can it work on private repositories?
Can it work on private repositories?
Can I use my own API key?
Can I use my own API key?
How long can a run take, and what does it cost?
How long can a run take, and what does it cost?
timeout of 1 to 120 minutes (default 10). The driver also caps a whole run. Its default is 2 hours and a self-hosted admin can change it. A run that hits the cap fails as timed out. Bellows records token usage per run: see bellows job activity <id>. This page cannot state a price.Which languages and frameworks does it support?
Which languages and frameworks does it support?
.bellows.yaml, so use an image with your toolchain, for example golang:1.25. See Configure your repo.How do I stop a run?
How do I stop a run?
bellows job stop <id>, or call the stop_task MCP tool. The task shows Stopping, then Stopped · Needs review. See Task lifecycle.Can the agent read my Jira tickets?
Can the agent read my Jira tickets?
Can my tests use a database?
Can my tests use a database?
.bellows.yaml and it starts next to the agent. See Services.Can I start tasks from scripts or CI?
Can I start tasks from scripts or CI?
fat_). Organization tokens (oat_) are read-only.Troubleshooting
Each entry reads symptom, cause, fix. For every failure badge, see Task lifecycle.My repository is not in the list
My repository is not in the list
list_repos returning stale: true means the list could not refresh, so a missing repo is not proof it is absent. See Connections.Task fails with “config error” before the agent starts
Task fails with “config error” before the agent starts
.bellows.yaml did not parse, or an executor or service setting was refused. The parser is strict: unknown keys and tab characters are errors.
Fix. Open the failed run. The error names the line and key. Fix it on the default branch, then Retry. A retry without a fix fails again. See Configure your repo.Setup keeps retrying
Setup keeps retrying
setup command is retried while it fails, so a broken command loops.
Fix. Run the same command locally in the same image, for example docker run --rm -it golang:1.25 sh. Also check that any secret it needs is set. See Configure your repo.A gate passes on my machine but fails in Bellows
A gate passes on my machine but fails in Bellows
timeout (max 120) or declare a service. See Gates.A service crashes or never becomes ready
A service crashes or never becomes ready
user.
Fix. Open the Services panel on the task. For a dead service it shows the exit code, reason and last log lines. Bellows restarts a dead service and waits up to 5 minutes before failing the task as service failed. See Services.Executor refused or suspended
Executor refused or suspended
The task says it needs a Jira connection
The task says it needs a Jira connection
MCP returns 401 or 404
MCP returns 401 or 404
401 means the client has no valid token, or you disconnected it. 404 on /api/mcp means MCP is switched off on that self-hosted server. Old HTTP+SSE clients and plain http are refused.
Fix. Authenticate again from the client. Check Account → Connected apps. Use the https endpoint and a Streamable HTTP client. See Connect an MCP client.CLI exits with a non-zero code
CLI exits with a non-zero code
No pull request was opened, or publishing failed
No pull request was opened, or publishing failed
publish failed (a conflict with the base branch or a refused push). Or your policy blocked it as evidence required: nothing is pushed until gates pass or a review approves. Or the run itself failed before it produced a change.
Fix. Read the reason on the run. For publish failed, resolve the conflict, then follow up or retry. For evidence required, see the reason table in Policy and reviewers. Without a policy, a task whose gate repair rounds ran out still ships as a draft pull request.An attachment was rejected
An attachment was rejected