usebruno/bruno · error · Error
Migration aborted — ${parseErrors.length} file(s) failed to
Error message
Migration aborted — ${parseErrors.length} file(s) failed to parse:
${parseErrors.join('\n')} What it means
Error "Migration aborted — ${parseErrors.length} file(s) failed to parse: ${parseErrors.join('\n')}" thrown in usebruno/bruno.
Source
Thrown at packages/bruno-electron/src/ipc/yml-migration.js:141
const requestData = await parseRequestViaWorker(bruContent, { format: 'bru' });
ymlPath = bruFilePath.replace(/\.bru$/, '.yml');
ymlContent = await stringifyRequestViaWorker(requestData, { format: 'yml' });
}
checkCancelled();
conversionPlan.push({ ymlPath, ymlContent });
tabPathMap[bruFilePath] = ymlPath;
} catch (parseError) {
if (parseError?.message === MIGRATION_CANCELLED_MESSAGE) {
throw parseError;
}
parseErrors.push(`${bruFilePath}: ${parseError.message}`);
}
emitProgress('parsing', i + 1, bruFiles.length);
}
if (parseErrors.length > 0) {
throw new Error(`Migration aborted — ${parseErrors.length} file(s) failed to parse:\n${parseErrors.join('\n')}`);
}
const collisions = conversionPlan
.map(({ ymlPath }) => ymlPath)
.filter((ymlPath) => fs.existsSync(ymlPath));
if (fs.existsSync(ocYmlPath)) {
collisions.push(ocYmlPath);
}
if (collisions.length > 0) {
throw new Error(`Migration aborted — target yml file(s) already exist:\n${collisions.join('\n')}`);
}
// Phase 2: write the converted yml files
const totalWrites = conversionPlan.length + 1;
for (let i = 0; i < conversionPlan.length; i++) {
checkCancelled();
const { ymlPath, ymlContent } = conversionPlan[i];
await writeFile(ymlPath, ymlContent);View on GitHub (pinned to 9bdd81c7bd)
Solutions
- Fix the listed files' syntax so they parse, then re-run the migration.
- Exclude or repair malformed bru files before migrating.
When it happens
Trigger: Thrown at packages/bruno-electron/src/ipc/yml-migration.js:141 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of usebruno/bruno@9bdd81c7bd (2026-08-13).
Data as JSON: /api/errors/1ef7071c9b7d3d53.
Report an issue: GitHub.