windmill-labs/windmill · error
Migration cancelled by user
Error message
Migration cancelled by user
What it means
User-choice sentinel in the legacy git-sync migration flow: the repository still uses the pre-multi-repo settings format, the CLI explained the migration and asked for confirmation (Confirm.prompt), and the answer was no. For push the flow cannot continue (pushing to a legacy repository is unsupported), so it exits with this error after printing a skip warning; for pull the operation aborts likewise, with a note that migration can be done later via the UI. The input at fault is the interactive confirmation declining the migration.
Source
Thrown at cli/src/commands/gitsync-settings/legacySettings.ts:75
console.log(` Include paths: ${workspaceIncludePath.join(', ')}`);
console.log(` Include types: ${finalIncludeType.join(', ')}\n`);
const confirm = await Confirm.prompt({
message: operationName === "push"
? 'Do you want to migrate this repository before pushing?'
: 'Do you want to migrate this repository?',
default: true
});
if (!confirm) {
const message = operationName === "push"
? '\n⚠️ Migration skipped. Cannot push to legacy repository.'
: '\n⚠️ Migration skipped. You can migrate later via the UI.';
console.log(colors.yellow(message));
if (operationName === "push") {
return null; // Signal to exit push operation
}
throw new Error('Migration cancelled by user');
}
// Perform the migration
let migratedIncludeType = [...workspaceIncludeType];
if (selectedRepo.exclude_types_override && selectedRepo.exclude_types_override.length > 0) {
migratedIncludeType = migratedIncludeType.filter(
type => !selectedRepo.exclude_types_override.includes(type)
);
}
const migratedRepo = {
...selectedRepo,
settings: {
include_path: [...workspaceIncludePath],
include_type: migratedIncludeType,
exclude_path: [],
extra_include_path: []
}View on GitHub (pinned to e474e8803c)
Solutions
- Re-run and answer 'y' to the migration prompt to convert the repository to the current settings format
- For pull, migrate later via the UI (Settings → Git Sync) and pull again
- Skip the CLI interaction by passing --yes (non-interactive mode auto-confirms)
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at cli/src/commands/gitsync-settings/legacySettings.ts:75 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/b74a0a54189db97a.
Report an issue: GitHub.