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
- Pass at least one repository when creating/starting the workspace.
- Validate the repository list is non-empty in the caller/UI before invoking the API.
- Check why upstream produced an empty list (filtered-out repos, wrong request payload) and fix the data source.
- 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
- Validate the repo list is non-empty in the UI/API layer before calling workspace operations.
- Check request payloads for missing/empty 'repos' fields in automation scripts.
- Trace why upstream produced an empty list (filters, validation drops).
- Surface a repo-selection prompt instead of relying on backend errors.
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
- result.error
- Repository already attached to workspace
- Workspace has no repositories configured
- Failed to list projects (${res.status})
- No setup script configured for this project
AI-assisted analysis of BloopAI/vibe-kanban@4deb7eca8f (2026-08-29).
Data as JSON: /api/errors/51e20526f9ba82ca.
Report an issue: GitHub.