nikivdev/code · error
Queued commit {} has review issues. Fix them, or re-run with
Error message
Queued commit {} has review issues. Fix them, or re-run with --allow-issues. What it means
Approve-time gate in `run_commit_queue` (src/commit.rs:9276): a queued commit whose stored review recorded issues cannot be approved unless explicitly overridden with `--allow-issues` or `--force`. It protects the pipeline from approving code with known review problems.
Source
Thrown at src/commit.rs:9276
);
entry
} else {
return Err(err);
}
}
};
let _ = refresh_queue_entry_commit(&repo_root, &mut entry);
let issues_present = entry.review_issues_found
|| entry
.review
.as_deref()
.map(|s| !s.trim().is_empty())
.unwrap_or(false);
let unreviewed = entry.version >= 2 && !entry.review_completed;
if issues_present && !allow_issues && !force {
bail!(
"Queued commit {} has review issues. Fix them, or re-run with --allow-issues.",
short_sha(&entry.commit_sha)
);
}
if unreviewed && !effective_allow_unreviewed && !force {
bail!(
"Queued commit {} does not have a clean review (missing). Re-run review, or re-run with --allow-unreviewed.",
short_sha(&entry.commit_sha)
);
}
if entry.review_timed_out && !force {
eprintln!(
"note: review timed out for {}; approving anyway (re-run `f commit-queue review {}` if you want a full review)",
short_sha(&entry.commit_sha),
short_sha(&entry.commit_sha)
);
}
View on GitHub (pinned to a747e741ae)
Solutions
- Read the entry's review issues (`f commit-queue list` or review output), fix the flagged problems, re-run review, then approve.
- If the issues are acceptable, re-run with `--allow-issues`.
- Use `--force` to bypass both issue and unreviewed gates when overriding deliberately.
Example fix
// before f commit-queue approve 9abc123 // after (issues acknowledged) f commit-queue approve 9abc123 --allow-issues
Defensive patterns
Strategy: validation
Validate before calling
let entry = find_entry(hash)?;
let has_issues = entry.review_issues.as_deref().map(|s| !s.trim().is_empty()).unwrap_or(false);
if has_issues && !allow_issues && !force {
bail!("entry {} has review issues; fix or pass --allow-issues", entry.commit_sha);
} Type guard
fn review_is_clean(entry: &CommitQueueEntry) -> bool {
entry.review_issues.as_deref().map(|s| s.trim().is_empty()).unwrap_or(true)
} Try / catch
match approve_queued(hash) {
Err(e) if e.to_string().contains("has review issues") => {
eprintln!("{e}; inspect review notes, fix, or re-run with --allow-issues");
}
other => other?,
} Prevention
- Run `f commit-queue list` to check review state before approving.
- Address review issues immediately after review instead of deferring to approve time.
- Use --allow-issues/--force only as a conscious, documented override, never in default CI scripts.
When it happens
Trigger: `f commit-queue approve <hash>` where the entry's review issues field is non-empty (issues_present) and neither --allow-issues nor --force was passed.
Common situations: Reviewer left blocking comments; automated review flagged lint/security issues; user forgot a prior review recorded issues; CI scripts approving without the override flag.
Related errors
- Queued commit {} does not have a clean review (missing). Re-
- Some queued commit reviews failed. Resolve errors and re-run
- --all cannot be combined with HASH. Use `f commit-queue appr
AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01).
Data as JSON: /api/errors/c1f6bed008d40b49.
Report an issue: GitHub.