Get started Dashboard

Fix broken builds before they block your team.

When the build breaks on main, Polylane finds the commit that broke it and writes the fix, so your CI stays green without anyone digging through logs.

Get started for free

Detect

It watches main for every failed build

A failed or timed-out run on main or in the merge queue becomes an issue the moment it happens. GitHub Actions, Depot and any CI that reports to GitHub.

Connect your CI
Issues ci / build failing on main Timeline

ci / build failing on main

Medium Confirmed ·Detected from a GitHub Actions run
OverviewMetricsLogsTracesTimelinePropertiesInvestigation
  1. 14:02:11 Alert received

    GitHub · ci / build failed on main · run #1842

  2. 14:02:40 Triaged as an incident

    tsc fails in orders/api.ts: it still imports formatPrice from utils/price, which a3f9c21 (#1287) moved to money/format.ts four minutes earlier.

  3. 14:02:44 Fix run started

    The same agent that triaged it keeps working it.

  4. 14:09:30 Pull request opened

    #1291 Import formatPrice from money/format in orders/api

  5. 14:21:05 Alert recovered

    ci / build passed on main. Issue resolved.

Investigate

It reads the logs and finds the culprit

Polylane reads the failing job, the commit that broke the build and everything else that changed, and shows how they connect.

Start investigating
ci / build failing on main Timeline
  1. 14:02:44 Fix run started

    One agent, from the failed run to the pull request.

  2. 14:06:12 Causal chain
    Signal (alert)

    GitHub Actions · ci / build failed on main · run #1842

    Surfacing site

    ci / build at coreplane/storefront:orders/api.ts:3

    Mechanism

    tsc stops on TS2305: orders/api.ts imports formatPrice from ../utils/price, which no longer exports it

    Producer

    coreplane/storefront, at money/format.ts

    • Producer evidence
    • job log, ci / build step 4: error TS2305 in orders/api.ts, 1 error
    • git diff a3f9c21: formatPrice moved from utils/price.ts to money/format.ts, 6 imports updated, orders/api.ts not among them
    • runs #1839 to #1841 on main passed before a3f9c21
    Trigger

    a3f9c21 (#1287) merged 4 minutes before the failed run

    Blast radius

    0 other resource(s), 0 other tenant(s); data at risk: none named

    Every link rests on named evidence, or is written as unknown: <what would establish it>. Counts, not adjectives. If the cause isn't proven, no fix ships.

  3. 14:09:30 Pull request #1291

    Import formatPrice from money/format in orders/api

Fix

It writes the fix and tests it first

The fix runs through your build and tests before you see it. When main passes again, the issue closes itself.

Start fixing
github.com/coreplane/storefront/pull/1291

Import formatPrice from money/format in orders/api #1291

polylane
Open polylane wants to merge 1 commit into main from polylane/autofix/ci/r7m2q8-9c1e4b0
Conversation 1 Commits 1 Checks 2 Files changed 1
polylane bot commented 6 minutes ago ···

The build on main has failed since a3f9c21 (#1287), which moved formatPrice from utils/price to money/format. orders/api.ts still imported it from the old path, so tsc failed in ci / build.

What changed

orders/api.ts imports formatPrice from ../money/format. Nothing else in the repo used the old path.

Validation

npm run build passes. npm test: 312 passed.

Root cause · Why it's safe · Out of scope
polylane added commit 9c1e4b0 Verified
Review required At least 1 approving review is required
ci / build Successful in 1m 48s Details
ci / test Successful in 4m 05s Details
Review required Waiting on your review before it can merge
Merging is blocked

What Polylane does when the build breaks.

Watches main and the merge queue

A failed or timed-out run there becomes an issue right away.

Reads the logs for you

It reads the failing job, the commit that broke it and what else changed around it.

Fixes its own pull requests

If CI fails on a fix Polylane wrote, it fixes that too, on the same branch.

Cleans up after itself

When main passes again, the issue closes on its own.

Stays out of your branches

Red builds on your own branches and pull requests are yours. Polylane leaves them alone.

Starts when you say so

Fixes start on their own by default. Switch to approval and each one waits for you.

It plugs into what you already run.

Loved by developers

Vitor Balocco Runlayer, on Product Hunt It fixed something like 5 mins in after we set it up. It not only helps with on-call investigations, it's also pro-active about improving issues in CI, like flaky tests, hardening against transient errors, etc. Great product! Kyle Galbraith Depot, on Product Hunt We've been using Polylane at Depot for a few weeks now. I've never seen anything like it. I think we merged 10 PRs in the first hour it was running. Things will never be the same. A very awesome team to work with as well. Ben @nurodev So far @polylane is very cool! Even more that it's finding issues, creating fixes and then working with @pullfrogai in PR's to improve it even more. Ben Anthony @benjamin_ACD a few days into using @polylane and I have merged like 40 something worthwhile PRs, seems my agents think the PRs are much higher utility than what detail was giving me Tito @mynameistito Wait... so you're telling me I don't even need to make PR's to fix up stuff and @polylane will just do it for me????

Related guides

All continuous integration guides

Common questions.

Which CI providers does Polylane support?

GitHub Actions, Depot, and any other CI that reports checks to GitHub. GitLab CI and CircleCI are coming. The current list is at polylane.com/integrations.

Does it fix CI failures on my pull requests?

No. Polylane acts on your default branch and merge queue, where a red build blocks everyone. On your own branches the red check already tells you. When CI fails on a fix Polylane wrote, it fixes that too.

What does Polylane read when a build fails?

The failed run, the failing commit and the job logs, along with your code, recent changes and the rest of the context graph.

Can I approve fixes before Polylane starts?

Yes. Fixes start on their own by default. Switch autofix to approval and each one waits until someone presses Run.

Will it merge the fix?

Not by default. The fix goes through your normal review.

More use cases

Stop babysitting the build. Polylane keeps main green.