Troubleshooting
Fixes for missing checks, configuration errors, incomplete lenses, Slack delivery and auto-approval.
Start with the symptom closest to what you see. If none fits, email marcus@cmglabs.ai with the repository, the pull request number and, if the check shows one, the reference id.
No Warpway check on a pull request
Check these in order:
- Is the pull request a draft? Drafts are skipped unless
review.include_drafts: true. Mark it ready for review. - Is the repository in the installation? On GitHub, open the installation's repository access and confirm the repository is selected. See GitHub installation.
- Is reviewing turned on for the repository in the Warpway dashboard?
- Is the installation suspended? A suspended installation receives no events.
- Does your configuration exclude it? Authors in
review.ignore_authors, base branches outsidereview.base_branches, and pull requests whose changed files all matchreview.ignore_pathsare not reviewed. Remember the configuration comes from the base branch. - Has the pull request changed since installation? Pull requests that were already open are reviewed on their next event. Push a commit or close and reopen the pull request. After the first review exists,
/warpway rerunand the dashboard rerun button are available.
The check says "Usage limit reached"
The Free plan includes 20 private repository reviews per calendar month (UTC). The pull request was not reviewed. Upgrade to Team, or wait for the next month and push a commit or re-run the check. See Billing.
The check reports a configuration error
The .warpway.yml on the base branch is invalid. The check's title reads Invalid Warpway configuration, and the check details and the summary comment list each problem with its line, for example an unknown key or a value of the wrong type. Fix the file in a pull request and merge it; until then reviews against that branch report the error instead of passing. The pull request that fixes the file is itself reviewed under the broken base-branch file, so it reports the same error. If Warpway / Review is a required check, either have someone with bypass permission merge the fix, or have an Admin lower the repository's trust level below Gate in the dashboard until it merges: below Gate the check reports neutral and does not block.
Common mistakes:
- a misspelled key, such as
merge_gatesorrequired_lens; - a lens key that does not exist, or uses uppercase letters;
- a glob that starts with
*and is not quoted: write"**/*.snap"; trust_levelwritten as a word instead of a number from 0 to 4.
My change to .warpway.yml has no effect
Warpway reads the configuration from the pull request's base branch, so changes apply to pull requests opened after the change is merged, not to the pull request that makes it. The summary comment on that pull request says so. Also check:
- the file is the one Warpway reads: the first that exists of
.warpway.yml,.warpway.yaml,.github/warpway.ymland.github/warpway.yaml. See Configuration as code; - the key is not locked by your organization (locked keys are ignored and listed with the review);
- your plan includes the feature: on Free,
.warpway.ymlpolicy is not applied; - you are not trying to raise the trust level: the file can only lower it.
The check is neutral and does not block merges
At trust levels 0 (Observe) and 1 (Assist), the check always concludes neutral, which GitHub treats as passing. Raise the repository to Gate and require the check in branch protection. On the Free plan the trust level is capped at Assist. See Merge gating.
Warpway / Review does not appear in branch protection
GitHub only offers checks that ran in the repository recently. Open or update a pull request so the check runs once, then search for it again, spelled exactly Warpway / Review.
A lens is Incomplete
Incomplete means Warpway could not finish required work, so it refuses to call the lens Cleared. The lens shows the reason. Common causes:
- A model or tool failed after retries, for example during a provider outage. Re-run the check.
- A required runtime verification profile failed, timed out or never reported. See the next section.
- Required evidence could not be gathered, for example a lens requires evidence about callers and the code could not be read.
- The pull request is too large for
review.max_changed_files, or the repository snapshot could not be downloaded. - A permission is missing, such as Actions access for runtime verification (install the Warpway Runtime app and give it the repository).
Fix the cause and re-run the check. Incomplete never turns into Cleared on its own.
Runtime verification does not run
- The workflow must exist on your default branch, because GitHub only dispatches workflows it finds there, and on the pull request's base branch, whose copy Warpway runs.
- The profile must be listed under
runtime.profilesin the base branch's.warpway.yml, with the rightworkflowfile name. - Runtime verification must be turned on for the repository, the Warpway Runtime app installed with access to the repository (or Actions: write granted to your Warpway app on a self-hosted deployment), and the organization on the Team plan. The lens's Incomplete reason names which one is missing.
- The pull request must not come from a fork. Warpway never runs fork code with your workflow, which has your repository's permissions and secrets, so a lens that requires a profile stays Incomplete on a fork pull request.
- The workflow must keep the correlation id in its
run-nameand upload itswarpway-result.jsonin an artifact namedwarpway-result-<correlation id>, as the template does.
See Runtime verification.
Slack messages are not arriving
- Is Slack connected? Check Settings → Slack. If the app was removed from the workspace, reconnect it.
- Is the person linked? A task goes to Slack only for people whose Slack identity is linked by an explicit link, a verified email match you enabled, or an Admin. See Slack installation.
- Is the person active in Slack? Deactivated members cannot receive messages; Warpway routes to the next candidate.
- Is Slack enabled for the repository?
slack.enabled: falsein.warpway.ymlkeeps questions out of Slack. - Is the organization on a plan with Slack? Slack routing is included in the Team (and trial) and Enterprise plans, not Free.
- Does the question go to Slack? Engineering questions go to people on GitHub. Slack is used for non-engineering questions, people who are only in Slack, and lenses or routing set to
prefer_slack. See Routing. - Is the repository at Observe? At trust level 0 Warpway asks nobody anything.
A task went to the wrong person
The person can answer I'm not the right person, or comment /warpway wrong-person <task reference> on GitHub, and Warpway reroutes it. Admins can reassign the task directly and correct expertise on the People page so future questions route better. See Routing.
My answer did not resolve the task
Warpway resolves a task only when the answer clearly settles the question. If your reply could mean more than one thing, it asks one follow-up; answer that, or use the buttons. See Human tasks.
I was asked again after new commits
Warpway reuses an earlier answer as it is only if the code the question depended on did not change. If the new commits changed that code, Warpway checks the earlier answer against the new code and reopens the task when the answer no longer holds, so you are asked about the new behavior.
Auto-approval did not approve
Open the pull request in the dashboard: auto-approval eligibility lists every condition with whether it passed. The most common reasons are a new commit since the review, an open required task, a failing or missing CI check, a path or category exclusion, a repository below trust level 4 (Auto-approve), or auto-approval not enabled by an Owner for the repository. See Auto-approval.
Merges wait forever in the merge queue
Warpway reviews pull requests and does not report on merge-queue groups. Do not require Warpway / Review in a ruleset that also gates a merge queue. See Merge gating.
Something unclear or missing? Email marcus@cmglabs.ai.