{"record":{"id":"b7911da3aa781036","repo":"temporalio/temporal","slug":"unable-to-read-db-schema-version-keyspace-database","errorCode":null,"errorMessage":"unable to read DB schema version keyspace/database: %s error: %v","messagePattern":"unable to read DB schema version keyspace/database: (.+?) error: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"common/persistence/schema/version.go","lineNumber":18,"sourceCode":"package schema\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/blang/semver/v4\"\n)\n\n// VerifyCompatibleVersion ensures that the installed version is greater than or equal to the expected version.\nfunc VerifyCompatibleVersion(\n\tversionReader VersionReader,\n\tdbName string,\n\texpectedVersion string,\n) error {\n\n\tversion, err := versionReader.ReadSchemaVersion(dbName)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"unable to read DB schema version keyspace/database: %s error: %v\", dbName, err.Error())\n\t}\n\t// In most cases, the versions should match. However if after a schema upgrade there is a code\n\t// rollback, the code version (expected version) would fall lower than the actual version in\n\t// Cassandra. This check to allow such rollbacks since we only make backwards compatible schema changes.\n\tversionParsed, _ := semver.ParseTolerant(version)\n\texpectedVersionParsed, _ := semver.ParseTolerant(expectedVersion)\n\n\tif versionParsed.LT(expectedVersionParsed) {\n\t\treturn fmt.Errorf(\"version mismatch for keyspace/database: %q. Expected version: %s cannot be greater than Actual version: %s\", dbName, expectedVersion, version)\n\t}\n\treturn nil\n}\n","sourceCodeStart":1,"sourceCodeEnd":31,"githubUrl":"https://github.com/temporalio/temporal/blob/bde624efd13fbd3843654058db6d9c716166318b/common/persistence/schema/version.go#L1-L31","documentation":"Error \"unable to read DB schema version keyspace/database: %s error: %v\" thrown in temporalio/temporal.","triggerScenarios":"Thrown at common/persistence/schema/version.go:18 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bde624efd13fbd3843654058db6d9c716166318b","analyzedAt":"2026-09-01T07:18:39.080Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}