Guide · How AI bug fixing works

How AI bug fixing works, beyond generating a patch.

An AI bug fixer helps turn an observed software failure into a candidate change. A reliable workflow also needs an explanation, a testable result and a clear decision about whether the original problem is resolved.

What is an AI bug fixer?

An AI bug fixer uses a model to interpret software evidence and propose changes intended to correct a defect. The input might be a bug report, a failing test, a code review finding or a security alert. These are different starting points: a tool that excels at a known scanner finding may need different context to investigate an intermittent mobile failure.

The useful unit of work is therefore an incident with a defined expected outcome. “The checkout is broken” is a starting observation. “A signed-in customer with an existing basket receives an error on the current Android build when confirming delivery” is a more testable description. Better evidence reduces the space in which an AI system has to guess.

For the product overview, visit the Remedy AI bug fixer homepage. This guide explains the engineering process; how Remedy works describes the platform architecture.

Start with the behaviour and the affected version

Record what should happen, what actually happens, the time of the incident and the application version. Add the route or screen, affected service and relevant recent events where collection is permitted. A screenshot can show a visual symptom, but usually cannot establish which backend change caused it.

Version identity matters because a report from an older mobile build can be misleading when investigated against the newest source. Link the deployed build to a known repository commit, and retain that relationship throughout diagnosis and repair. If the mapping is missing, expose the uncertainty instead of silently choosing the latest branch.

Collect only the evidence needed for the question. Raw logs and screenshots can contain personal information or credentials. Evidence collection needs project controls, bounded retention and sanitisation before any model receives it. The Remedy SDK and Reporter pages explain the current application foundations.

Turn a diagnosis into a claim you can challenge

A model can suggest a plausible cause while being wrong about the mechanism. Treat its explanation as a hypothesis. Identify an observation that would support or contradict it: a failing assertion, a reproducible sequence, or a difference between affected and unaffected versions.

Consider an illustrative checkout defect caused by a missing field. A useful diagnosis identifies where the field becomes absent, which requests are affected and what the expected behaviour should be. A less useful diagnosis merely notes that the exception mentions a null value. Neither is a customer result; the example shows what evidence a reviewer should expect.

The next step is to reproduce the failure in an appropriate test environment. If reproduction is unavailable, record that limit and choose additional evidence deliberately. A confident paragraph is not a substitute for a reproducible failure or a narrowly scoped acceptance check.

Prepare a focused repair against known source

The repair workspace should start from the authorised baseline. Keep the candidate small enough to explain: which behaviour changes, why it addresses the incident, and what adjacent behaviour might be affected. Broad refactoring makes it harder to separate the proposed fix from unrelated changes.

A code change is only one possible response. Some incidents need configuration correction, a rollback, dependency recovery or a data repair procedure. An AI code fixer should not invent a source patch for every operational failure. See AI code repair for the candidate-change stage and autonomous remediation for the wider response decision.

Repository access, test execution and deployment are separate permissions. Possessing enough evidence to diagnose a failure does not automatically authorise changing a protected branch or a running service. Project policy should define each boundary before automation begins.

Choose tests that actually address the incident

A successful build establishes that the code can build under that configuration. A passing unit suite establishes that its assertions passed. Neither automatically proves that the original defect has gone. Add a regression check tied to the observed behaviour, then run relevant wider checks for the change.

For an API response defect, a useful check asserts the required response content as well as the status. For a navigation problem, it follows the affected user journey. For a timing issue, a single successful run may be weak evidence: the acceptance criteria need to address repetition and relevant conditions.

The reviewer should be able to see which checks ran, which did not, what source was tested and what failed. Missing dependencies, inaccessible fixtures and unstable tests should appear as limitations. They should not be translated into a successful result because the agent has reached the end of its attempt.

Review, release and check the affected environment

Review combines the candidate diff, the root-cause explanation, the relevant evidence and the test results. The reviewer decides whether the change is proportionate, whether the tests cover the incident and whether the release has an appropriate recovery path. Approval should apply to the actual candidate that will be released.

After release, establish which version is running and repeat the relevant acceptance check. A merged pull request and a completed deployment are useful milestones, but customers may still experience the issue because of stale clients, incomplete rollout, configuration differences or a mistaken diagnosis.

This is the purpose of post-deployment verification. Define the success criteria before the candidate is prepared, so the system cannot lower the standard to match whatever it produced. If the outcome is ambiguous, the incident remains open for investigation.

Where automation helps, and where judgement remains

Automation can organise an incident record, gather permitted context, prepare a candidate and run repeatable checks. It can reduce hand-offs when the same evidence follows the issue through each stage. It still depends on a usable environment, meaningful assertions and people who can decide whether the outcome is acceptable.

An early evaluation should use a known defect with an agreed acceptance test. Include an incomplete report and a case the tool should decline to fix. Assess how it reports uncertainty, failed attempts and unavailable checks. A useful tool should save engineering effort without making the final review harder.

Compare AI bug-fixing tools by their starting signal and validation scope, rather than assuming every product labelled “autofix” covers the same lifecycle. For incident response measurement, read the MTTR guide.

From bug report to verified fix.

See how Remedy connects evidence, diagnosis, repair, deterministic checks and production verification.

Explore the complete workflow →