temporalio/temporal · error

version mismatch for keyspace/database: %q. Expected version

Error message

version mismatch for keyspace/database: %q. Expected version: %s cannot be greater than Actual version: %s

What it means

Error "version mismatch for keyspace/database: %q. Expected version: %s cannot be greater than Actual version: %s" thrown in temporalio/temporal.

Source

Thrown at common/persistence/schema/version.go:27

// VerifyCompatibleVersion ensures that the installed version is greater than or equal to the expected version.
func VerifyCompatibleVersion(
	versionReader VersionReader,
	dbName string,
	expectedVersion string,
) error {

	version, err := versionReader.ReadSchemaVersion(dbName)
	if err != nil {
		return fmt.Errorf("unable to read DB schema version keyspace/database: %s error: %v", dbName, err.Error())
	}
	// In most cases, the versions should match. However if after a schema upgrade there is a code
	// rollback, the code version (expected version) would fall lower than the actual version in
	// Cassandra. This check to allow such rollbacks since we only make backwards compatible schema changes.
	versionParsed, _ := semver.ParseTolerant(version)
	expectedVersionParsed, _ := semver.ParseTolerant(expectedVersion)

	if versionParsed.LT(expectedVersionParsed) {
		return fmt.Errorf("version mismatch for keyspace/database: %q. Expected version: %s cannot be greater than Actual version: %s", dbName, expectedVersion, version)
	}
	return nil
}

View on GitHub (pinned to bde624efd1)

When it happens

Trigger: Thrown at common/persistence/schema/version.go:27 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of temporalio/temporal@bde624efd1 (2026-09-01). Data as JSON: /api/errors/a41921af0b11a238. Report an issue: GitHub.