usebruno/bruno · error · Error
Invalid workspace: workspace.yml not found in the zip file
Error message
Invalid workspace: workspace.yml not found in the zip file
What it means
Error "Invalid workspace: workspace.yml not found in the zip file" thrown in usebruno/bruno.
Source
Thrown at packages/bruno-electron/src/ipc/workspace.js:376
const tempDir = path.join(extractLocation, `_bruno_temp_${Date.now()}`);
await fsExtra.ensureDir(tempDir);
try {
await extractZip(zipFilePath, { dir: tempDir });
const extractedItems = fs.readdirSync(tempDir);
let workspaceDir = tempDir;
if (extractedItems.length === 1) {
const singleItem = path.join(tempDir, extractedItems[0]);
if (fs.statSync(singleItem).isDirectory()) {
workspaceDir = singleItem;
}
}
const workspaceYmlPath = path.join(workspaceDir, 'workspace.yml');
if (!fs.existsSync(workspaceYmlPath)) {
throw new Error('Invalid workspace: workspace.yml not found in the zip file');
}
const workspaceConfig = yaml.load(fs.readFileSync(workspaceYmlPath, 'utf8'));
const workspaceName = workspaceConfig.info.name || 'Imported Workspace';
const sanitizedName = sanitizeName(workspaceName);
let finalWorkspacePath = path.join(extractLocation, sanitizedName);
let counter = 1;
while (fs.existsSync(finalWorkspacePath)) {
finalWorkspacePath = path.join(extractLocation, `${sanitizedName} (${counter})`);
counter++;
}
if (workspaceDir !== tempDir) {
await fsExtra.move(workspaceDir, finalWorkspacePath);
await fsExtra.remove(tempDir);
} else {
await fsExtra.move(tempDir, finalWorkspacePath);View on GitHub (pinned to 9bdd81c7bd)
Solutions
- Export the workspace again ensuring workspace.yml is included at the zip root.
- Use a zip produced by Bruno's workspace export.
When it happens
Trigger: Thrown at packages/bruno-electron/src/ipc/workspace.js:376 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of usebruno/bruno@9bdd81c7bd (2026-08-13).
Data as JSON: /api/errors/a424c9b3517475e8.
Report an issue: GitHub.