Suspect commits

How Apperio picks the commits most likely to have caused an error.

Where you see them

Open an issue. Under Likely caused by, Apperio lists up to three commits that probably introduced the error, each with its message, a link to the commit on GitHub, and a one-line reason. Suspects are a starting point for your investigation, not proof.

How they are picked

  1. Candidates. Up to 20 commits on your linked branch from the 7 days before the error was first seen.
  2. Scoring. A commit scores higher for each file it changed whose name appears in the error’s stack trace, and a little higher the more recent it is.
  3. Ranking. The 10 best candidates go to an AI model along with the error and its stack trace. It picks the likeliest, gives each a score from 0 to 100 and writes the reason you see.

If the AI step isn’t available, Apperio falls back to the scoring alone and only lists commits that changed a file named in the stack trace, with the reason Touched files that appear in the error’s stack trace.

When they are worked out

The first time anyone opens the issue. While it runs, the issue shows Checking recent commits for a likely cause…, usually for less than a minute. The result is saved and not recalculated, so later commits never appear as suspects for an older issue.

When there are none

  • No commits in the window. GitHub wasn’t connected yet, or nothing was pushed to the linked branch in the 7 days before the error first appeared.
  • No file match without AI. The fallback needs a file in the stack trace to match a changed file.

Minified stack traces

Production bundles have names like page-3f9a1c.js, which never match the source files your commits change. The file-name bonus only helps when stack traces name your own files, as they do in Node.js and in development builds. The AI ranking still weighs each commit’s message and files.

Related: Connect GitHub, Errors and issues.