hasura/graphql-engine · error
version %v not found
Error message
version %v not found
What it means
Raised when `hasura migrate delete --version N` is called and version N does not exist in the migration status (neither on the server nor in the project source directory).
Source
Thrown at cli/commands/migrate_delete.go:177
o.EC.Spin("Deleting migration...")
migrateDrv, err := migrate.NewMigrate(o.EC, true, o.Source.Name, o.Source.Kind)
if err != nil {
return errors.E(op, fmt.Errorf("error in creation of new migrate instance %w", err))
}
status, err := migrateDrv.GetStatus()
if err != nil {
return errors.E(op, fmt.Errorf("error while retrieving migration status %w", err))
}
// sourceVersions migration versions in source to be deleted similarly with serverVersions
var sourceVersions, serverVersions []uint64
if !o.All {
// if o.version isn't present on source and on server return error version isn't present.
if _, ok := status.Migrations[o.Version]; !ok {
return errors.E(op, fmt.Errorf("version %v not found", o.Version))
}
sourceVersions = []uint64{o.Version}
serverVersions = []uint64{o.Version}
} else if o.All {
for k, v := range status.Migrations {
if v.IsApplied {
serverVersions = append(serverVersions, k)
}
if v.IsPresent {
sourceVersions = append(sourceVersions, k)
}
}
}
// resets the migrations on server
err = migrateDrv.RemoveVersions(serverVersions)View on GitHub (pinned to 724551b9ae)
Solutions
- Run `hasura migrate status` and copy the exact version number
- If already deleted, no action needed
- Use --all to delete every version if that's the intent
- Check the migrations directory on disk for the actual version prefixes
Example fix
# before hasura migrate delete --version 12345 # after hasura migrate delete --version 1651234567890 # exact version from migrate status
Defensive patterns
Strategy: validation
Validate before calling
// verify version exists before delete
status, _ := migrateDrv.GetStatus()
if _, ok := status.Migrations[version]; !ok { log.Fatal("version missing") } Prevention
- Always copy versions from migrate status output
- Script a status check before delete commands
When it happens
Trigger: Deleting a version that was already deleted, never existed, or was renamed (e.g. passing 1650000000000 when files use a different timestamp).
Common situations: Wrong version number copy-pasted, migration files moved/deleted manually, prior delete already removed the version.
Related errors
- operation failed: %w
- cannot write migration directory: %w
- applying migrations on source: %s: %w
- operation failed: %w
- error while deleting status for database '%s': %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/0dc3268f35874748.
Report an issue: GitHub.