BloopAI/vibe-kanban · error · ContainerError
Workspace has no repositories configured
Error message
Workspace has no repositories configured
What it means
start_execution requires the workspace to have at least one repository configured, because each execution captures per-repo HEAD state (ExecutionProcessRepoState). If WorkspaceRepo::find_repos_for_workspace returns an empty list, the execution cannot proceed and this error is returned.
Source
Thrown at crates/services/src/services/container.rs:1145
.await?
};
Ok(execution_process)
}
async fn start_execution(
&self,
workspace: &Workspace,
session: &Session,
executor_action: &ExecutorAction,
run_reason: &ExecutionProcessRunReason,
) -> Result<ExecutionProcess, ContainerError> {
// Create new execution process record
// Capture current HEAD per repository as the "before" commit for this execution
let repositories =
WorkspaceRepo::find_repos_for_workspace(&self.db().pool, workspace.id).await?;
if repositories.is_empty() {
return Err(ContainerError::Other(anyhow!(
"Workspace has no repositories configured"
)));
}
let workspace_root = workspace
.container_ref
.as_ref()
.map(std::path::PathBuf::from)
.ok_or_else(|| ContainerError::Other(anyhow!("Container ref not found")))?;
let mut repo_states = Vec::with_capacity(repositories.len());
for repo in &repositories {
let repo_path = workspace_root.join(&repo.name);
let before_head_commit = self.git().get_head_info(&repo_path).ok().map(|h| h.oid);
repo_states.push(CreateExecutionProcessRepoState {
repo_id: repo.id,
before_head_commit,
after_head_commit: None,View on GitHub (pinned to 4deb7eca8f)
Solutions
- Add at least one repository to the workspace before starting executions.
- Check workspace_repos rows for the workspace id to confirm associations exist.
- Re-run the workspace/project creation flow so repos get attached.
- If the workspace is genuinely empty, don't start executions on it — guard the call first.
Example fix
// before
let process = container.start_execution(&workspace, cmd, ...).await?;
// after
let repos = WorkspaceRepo::find_repos_for_workspace(&pool, workspace.id).await?;
if repos.is_empty() {
anyhow::bail!("workspace {} has no repos; attach one before starting execution", workspace.id);
}
let process = container.start_execution(&workspace, cmd, ...).await?; Defensive patterns
Strategy: validation
Validate before calling
let repos = WorkspaceRepo::find_repos_for_workspace(&pool, workspace.id).await?;
if repos.is_empty() {
anyhow::bail!("attach a repository to workspace {} before running tasks", workspace.id);
} Try / catch
match result {
Err(e) if e.to_string().contains("no repositories configured") => prompt_user_to_attach_repo(),
other => other,
} Prevention
- Always complete the repo-attachment step of workspace creation before enabling run/follow-up actions.
- Disable 'run'/'review' buttons in UI while the workspace has zero repos.
- Monitor workspace_repos for rows deleted unexpectedly.
When it happens
Trigger: Any call chain that reaches start_execution (follow_up, start_review, run_setup_script, run_codex_setup, run_cursor_setup, start_queued_follow_up) for a workspace with zero rows in workspace_repos.
Common situations: Creating a workspace without adding repos via the repos API; the repo association row was deleted; workspace created from an empty/failed project setup; running a review or follow-up on a workspace where repo setup never completed.
Related errors
- No setup script configured for this project
- No cleanup script configured for this project
- No archive script configured for this project
- Workspace has no repositories configured
- Container ref not found for workspace
AI-assisted analysis of BloopAI/vibe-kanban@4deb7eca8f (2026-08-29).
Data as JSON: /api/errors/c144660ab2bfd859.
Report an issue: GitHub.