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

  1. Run `hasura migrate status` and copy the exact version number
  2. If already deleted, no action needed
  3. Use --all to delete every version if that's the intent
  4. 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

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


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/0dc3268f35874748. Report an issue: GitHub.