gitbutlerapp/gitbutler · error

At least one review number is required

Error message

At least one review number is required

What it means

The MCP review-card tool handler review_view_for_request (crates/but/src/command/mcp/mod.rs:719) rejects an empty `review_numbers` array before doing any repository work. At least one review/PR number is required to build a review view.

Source

Thrown at crates/but/src/command/mcp/mod.rs:719

        last_updated_at,
        commits: commits.len(),
        is_conflicted,
    };

    Ok(BranchDetailsView {
        kind: "branch",
        repository: resolved.repository,
        target,
        details,
    })
}

async fn review_view_for_request(
    request: ReviewCardRequest,
    context: RequestContext<RoleServer>,
) -> Result<ReviewView> {
    if request.review_numbers.is_empty() {
        bail!("At least one review number is required");
    }
    let resolved = resolve_repository(request.repository, context).await?;
    review_view_from_repository(resolved, &request.review_numbers)
}

fn review_view(repository: &Path, review_numbers: &[usize]) -> Result<ReviewView> {
    let resolved = open_repository(repository)?;
    review_view_from_repository(resolved, review_numbers)
}

fn refresh_reviews(request: RefreshReviewsRequest) -> Result<ReviewView> {
    if request.review_numbers.is_empty() {
        bail!("At least one review number is required");
    }
    review_view(&request.repository, &request.review_numbers)
}

fn review_view_from_repository(

View on GitHub (pinned to caf1f223d3)

Solutions

  1. Pass one or more review numbers, e.g. review_numbers: [12].
  2. If numbers are unknown, use the review-listing tool first to discover them.
  3. Validate the array is non-empty before issuing the tool call.

Example fix

// before
{ "review_numbers": [] }

// after
{ "review_numbers": [12] }
Defensive patterns

Strategy: validation

Validate before calling

if request.review_numbers.is_empty() {
    anyhow::bail!("review_numbers must contain at least one review number");
}

Prevention

When it happens

Trigger: Calling the review-card MCP tool with review_numbers: [] or with the field defaulted to an empty array by the client.

Common situations: Templated tool calls that omit the field; clients that default missing arrays to empty; agents calling the tool before listing reviews.

Related errors


AI-assisted analysis of gitbutlerapp/gitbutler@caf1f223d3 (2026-08-20). Data as JSON: /api/errors/f7fb1035eaccd511. Report an issue: GitHub.