BloopAI/vibe-kanban · error

No repositories provided

Error message

No repositories provided

What it means

map_workspace_manager_error converts WorkspaceManager errors into ContainerError variants. WorkspaceError::NoRepositories — raised when a workspace operation is invoked without any repositories — is mapped to a generic ContainerError::Other carrying the message 'No repositories provided'. It surfaces when creating or mutating a workspace without a repo list.

Source

Thrown at crates/local-deployment/src/container.rs:142

            approvals,
            queued_message_service,
            notification_service,
            remote_client,
        };

        container.spawn_workspace_cleanup();

        container
    }

    fn map_workspace_manager_error(err: WorkspaceError) -> ContainerError {
        match err {
            WorkspaceError::Database(err) => ContainerError::Sqlx(err),
            WorkspaceError::Worktree(err) => ContainerError::Worktree(err),
            WorkspaceError::GitService(err) => ContainerError::GitServiceError(err),
            WorkspaceError::Io(err) => ContainerError::Io(err),
            WorkspaceError::NoRepositories => {
                ContainerError::Other(anyhow!("No repositories provided"))
            }
            WorkspaceError::Repo(err) => ContainerError::Other(anyhow!(err)),
            WorkspaceError::WorkspaceNotFound => {
                ContainerError::Other(anyhow!("Workspace not found"))
            }
            WorkspaceError::RepoAlreadyAttached => {
                ContainerError::Other(anyhow!("Repository already attached to workspace"))
            }
            WorkspaceError::BranchNotFound { repo_name, branch } => ContainerError::Other(anyhow!(
                "Branch '{}' does not exist in repository '{}'",
                branch,
                repo_name
            )),
            WorkspaceError::PartialCreation(msg) => ContainerError::Other(anyhow!(msg)),
        }
    }

    async fn workspace_repo_inputs(

View on GitHub (pinned to 4deb7eca8f)

Solutions

  1. Pass at least one repository when creating/starting the workspace.
  2. Validate the repository list is non-empty in the caller/UI before invoking the API.
  3. Check why upstream produced an empty list (filtered-out repos, wrong request payload) and fix the data source.
  4. Surface a clearer client-side message prompting repo selection instead of relying on this backend error.

Example fix

// before
container.create_workspace(&workspace, vec![]).await?;
// after
anyhow::ensure!(!repos.is_empty(), "select at least one repository");
container.create_workspace(&workspace, repos).await?;
Defensive patterns

Strategy: validation

Validate before calling

if repos.is_empty() {
    return Err(anyhow!("At least one repository must be selected"));
}
container.create_workspace(&workspace, repos).await?;

Try / catch

match container.create_workspace(&workspace, repos).await {
    Ok(w) => w,
    Err(e) if e.to_string().contains("No repositories provided") => {
        // prompt user to pick a repository before retrying
    }
    Err(e) => return Err(e.into()),
}

Prevention

When it happens

Trigger: Calling a container/workspace API (e.g. workspace create/start) with an empty repositories list or None where at least one repository id/path is required.

Common situations: Frontend sends a create-workspace request with no repo selected, automation scripts omit the repos field, or upstream code filters out all repos (e.g. none passed validation) leaving an empty list.

Understand the failure class

Background: Missing required parameter errors: what 'X is required' and 'the required X param is missing' mean, and how to fix them — this error's family across 27 libraries.

Related errors


AI-assisted analysis of BloopAI/vibe-kanban@4deb7eca8f (2026-08-29). Data as JSON: /api/errors/51e20526f9ba82ca. Report an issue: GitHub.