Pipeline troubleshooting
Recover from stuck, failed, or surprising pipelines.
What this means
Most pipelines reach Done without anyone touching them. When one doesn't, this page is the first place to look. It groups common failure modes by what you see, then points you at what to check and where to read more.
When to use it
- The New pipeline form failed to dispatch with a router error.
- A pipeline is stuck in a state for longer than feels right.
- A pipeline reached Failed and you want to know why.
- A pipeline is in Awaiting clarification or Awaiting approval and you're not sure what to do.
- A pipeline shows Paused — ticket on hold or Configure Jira fields.
- A pipeline shows a Merge blocked banner under Awaiting approval.
- The pipeline cost more than your budget cap.
- The pipeline produced a result you didn't expect.
Before you start
Open the pipeline detail page. Almost every fix below starts there. Useful tabs:
- Timeline - what happened, in order.
- Diagnostics - Bilbis's internal view of the pipeline. Failed pipelines almost always have a clear reason here.
- CI runs - the actual CI errors, when CI is involved.
- Clarifications - when the agents asked a question.
If you can't reach the detail page (404), the pipeline was deleted or the URL is wrong. Go back to the pipelines list.
Pipeline didn't dispatch
The Dispatch pipeline button shows an error banner instead of redirecting to a detail page. The pipeline was never created.
Common router errors:
| Banner text | What it means | What to fix |
|---|---|---|
| Couldn't auto-route this pipeline: <reason> | Backend's auto-router (engine Auto) couldn't pick an engine. The reason is appended verbatim. Typical reasons: missing LLM credentials, master key unavailable. | Open Settings → Integrations (banner has a deep link). Add or rotate the LLM credential, then try dispatching again. Or pick a concrete engine in the form to skip auto-routing entirely. |
| Couldn't resolve the auto-router. Try again, or pick an engine manually. | Defensive backend guard - usually transient. | Click Dispatch pipeline again. If it persists, pick a concrete engine. |
Other dispatch-time problems are listed in Create a pipeline.
Pipeline failed
The state badge is red. The pipeline stopped without producing an MR.
What to check:
- Open the Diagnostics tab. It usually has the precise reason - a missing config, an exhausted budget, a quota limit on your LLM key, or a CI failure the agent couldn't fix.
- Read the last few rows of the Timeline for context. The escalation row often has a "Reason" callout that summarizes the agent's last attempt.
- If the failure mentions "No config found for repo X", see No config found for repo. This is a known backend gap.
- If cost exceeded the budget cap, the run halts on purpose. Either raise the cap on a new run or split the task.
- Bilbis does not retry automatically. To retry, dispatch a new pipeline with the same task description, or use a saved template.
See also: Pipeline failed (in-depth).
Awaiting clarification
The state badge is amber and reads "Needs your input".
What to do:
- Open the pipeline.
- Click the Clarifications tab.
- Read the question - the agent asks one at a time.
- Reply. Some questions have quick-reply buttons (yes/no, pick a branch); others want free text.
- The pipeline resumes within a few seconds of your reply.
If you don't reply, a scheduled job auto-cancels the clarification after 48 hours and the pipeline ends in Cancelled.
See also: Awaiting clarification.
Awaiting approval
The MR or PR is open. Bilbis is waiting for a person to approve before merging.
What to do:
- Look at the header callout. It tells you how long until auto-merge fires.
- Approve in any of these places:
- Approve & Merge button on the pipeline detail page (admins only).
- The merge request or pull request page on your Git provider.
- A reply on the Jira ticket, when configured.
- Approvals reflect within about 60 seconds.
If your product has auto-merge off and the window expires, the pipeline stays parked indefinitely. The header callout switches to red and reads "Approval window expired - still parked".
Merge blocked under Awaiting approval
A red Merge blocked banner sits under the approval banner. Bilbis tried to merge and the provider refused.
What to check:
- Read the friendly reason on the banner. It maps to a specific provider check (CI, conflicts, draft state, branch protection, missing approvals, open discussions).
- Click Open MR/PR on the banner to jump straight to the source.
- Fix the named issue at the source - resolve threads, get an approver, undraft, rebase, fix CI.
- Wait. A scheduled job retries the merge every ten minutes. The banner clears as soon as the retry succeeds.
See Clarifications and approvals → Merge blocked for the full reason map.
Paused — ticket on hold
The state badge is amber and reads Paused — ticket on hold.
What this means:
A Jira webhook moved the linked ticket into one of the Hold statuses configured in Settings → Integrations → Jira. Pipeline pauses until the ticket leaves all hold statuses.
What to do:
- Move the Jira ticket out of the hold status.
- The next Jira webhook poll resumes the pipeline automatically. Cancel still works from the header if the work is no longer needed.
- The latest reason - which hold status the ticket entered - is on the Timeline tab.
Configure Jira fields
The state badge is orange and reads Configure Jira fields.
What this means:
Bilbis tried to move the linked Jira ticket through a workflow status that requires fields you haven't mapped yet (typically customfield_* IDs on Code Review).
What to do:
- Open Settings → Integrations → Jira (or Products → <your product> → Jira override).
- Expand Transition field mappings.
- Add a row for each missing field. The Timeline callout names the exact field IDs Jira asked for.
- Save and retrigger the pipeline.
See Jira setup for the full editor.
Stuck in CI fixing
The pipeline cycles between CI and CI fixing. The agent is reading failing CI logs and pushing fixes.
What to check:
- Open CI runs to see the actual failing job log.
- If the failure is environmental (missing secret, broken runner, flaky test), the agent can't fix it. Cancel the pipeline and fix the underlying CI issue first.
- If the agent has tried multiple fixes and the failure persists, see CI still failing.
Stuck in routing
The pipeline sits in Routing for longer than expected.
What to check:
- This usually means the Repo Router couldn't decide between candidate repos in Let Bilbis pick mode. The pipeline often pivots to Awaiting clarification with a "which repo?" question.
- If the pipeline is on a single explicit repo, routing is fast. Long routing on a single repo points at a backend issue - open the Diagnostics tab.
Pipeline never starts
The pipeline is in Queued with a clock icon.
What this means:
Another pipeline already holds the lock for this repository. Pipelines on the same repo run sequentially. Yours will start as soon as the previous one finishes.
What to do:
- Wait, or raise the priority on a new run (1 = Highest, 5 = Lowest).
- If a previous pipeline is stuck and won't finish, cancel it from its detail page so the queue clears.
Pipeline cost more than expected
What to check:
- Open the LLM calls tab to see which calls were expensive.
- Look at the engine field on the header.
Automay have routed to a higher-tier engine for a hard task. - Set a smaller budget cap on the next run, or pin the engine to a cheaper one (Claude Haiku, Workers AI).
- If the same task keeps overshooting budget, split it into smaller pieces.
Pipeline produced wrong code
What to check:
- Read your task description. The agents read it verbatim - vague descriptions tend to produce vague results.
- Open LLM calls and look at the prompts. If the agent misunderstood, you can see where.
- Open the Diff tab to see the change. Either close the MR and dispatch a new pipeline with a clearer task, or amend the MR by hand.
A failed pipeline still teaches Bilbis. The Review Agent extracts learnings from completed runs. Over time, repeat tasks on the same repo improve.
Quick reference
| Symptom | Where to look |
|---|---|
| Form error: "Couldn't auto-route this pipeline" | Add or fix the LLM credential in Settings → Integrations, or pick a concrete engine. |
| Form error: "Couldn't resolve the auto-router" | Retry, or pick a concrete engine. Usually transient. |
| Red Failed badge | Detail page → Diagnostics tab. |
| Amber "Needs your input" | Detail page → Clarifications tab. |
| Amber "Awaiting approval" | Header → Approve & Merge button. |
| Red Merge blocked banner under approval banner | Banner reason + Open MR/PR link → fix at the source. |
| Amber Paused — ticket on hold | Move the Jira ticket out of the hold status. |
| Orange Configure Jira fields | Admin updates Settings → Integrations → Jira → Transition field mappings. |
| Clock-icon Queued badge | Wait for the previous pipeline on this repo, or cancel it. |
| Cycling CI / CI fixing | Detail page → CI runs tab. |
| Cost surprise | Detail page → LLM calls tab. |
| Result wrong | Detail page → Diff + LLM calls tabs. |
Related pages
- Pipeline states - every state and badge color.
- Review pipeline results - read the detail page tab by tab.
- Create a pipeline - every form field, including budget caps and priority.