{"record":{"id":"88a1804a18b940f0","repo":"flowable/flowable-engine","slug":"version-mismatch-library-version-is-currentver","errorCode":null,"errorMessage":"version mismatch: library version is '${currentVersion}', db version is ${dbVersion} Hint: Set <property name=\"databaseSchemaUpdate\" to value=\"true\" or value=\"create-drop\" (use create-drop for testing only!) in bean processEngineConfiguration in flowable.cfg.xml for automatic schema creation","messagePattern":"version mismatch: library version is '(.+?)', db version is (.+?) Hint: Set <property name=\"databaseSchemaUpdate\" to value=\"true\" or value=\"create-drop\" \\(use create-drop for testing only!\\) in bean processEngineConfiguration in flowable\\.cfg\\.xml for automatic schema creation","errorType":"exception","errorClass":"FlowableWrongDbException","httpStatus":null,"severity":"critical","filePath":"modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/db/EngineSqlScriptBasedDbSchemaManager.java","lineNumber":52,"sourceCode":"    protected abstract String getEngineVersion();\n\n    protected abstract String getSchemaVersionPropertyName();\n\n    protected abstract String getDbSchemaLockName();\n\n    protected abstract String getEngineTableName();\n\n    protected abstract String getChangeLogTableName();\n\n    protected abstract String getDbVersionForChangelogVersion(String changeLogVersion);\n\n    @Override\n    public void schemaCheckVersion() {\n        try {\n            String dbVersion = getDbVersion();\n            String currentVersion = getEngineVersion();\n            if (!currentVersion.equals(dbVersion)) {\n                throw new FlowableWrongDbException(currentVersion, dbVersion);\n            }\n\n            String errorMessage = null;\n            if (!isEngineTablePresent()) {\n                errorMessage = addMissingComponent(errorMessage, context);\n            }\n\n            if (errorMessage != null) {\n                throw new FlowableException(\"Flowable database problem: \" + errorMessage);\n            }\n\n        } catch (Exception e) {\n            if (isMissingTablesException(e)) {\n                throw new FlowableException(\n                        \"No flowable tables in DB. Set property \\\"databaseSchemaUpdate\\\" \\\"true\\\" or value=\\\"create-drop\\\" (use create-drop for testing only!) for automatic schema creation\",\n                        e);\n            } else {\n                if (e instanceof RuntimeException) {","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/db/EngineSqlScriptBasedDbSchemaManager.java#L34-L70","documentation":"FlowableWrongDbException: the engine library version does not equal the version recorded in the ACT_GE_PROPERTY table. The database schema was built with a different Flowable version than the code is running.","triggerScenarios":"Engine startup (or schemaCheckVersion) with databaseSchemaUpdate=false when the DB's schema.version property differs from the running Flowable version — e.g. after upgrading the flowable jars without upgrading the schema, or pointing a new engine at an old database.","commonSituations":"Upgraded maven dependency but not run the upgrade scripts; downgraded jars against a newer schema; multiple engine versions sharing one database; copied production DB into dev with different jar versions.","solutions":["Run the database upgrade scripts from the Flowable distribution matching the target version (dbupgrade scripts in order).","Set databaseSchemaUpdate=true (or \"create-drop\" for tests) to let the engine update the schema automatically.","Align dependency versions: ensure all flowable-* modules are the same version as the intended schema.","Point the engine at the correct database if this one belongs to another Flowable version."],"exampleFix":"// before\n<property name=\"databaseSchemaUpdate\" value=\"false\" /> // jars upgraded, DB still on old version\n// after\n<property name=\"databaseSchemaUpdate\" value=\"true\" /> // or run sql/upgrade scripts for your version","handlingStrategy":"validation","validationCode":"try (Connection c = dataSource.getConnection()) {\n  if (c == null || c.isClosed()) throw new IllegalStateException(\"DataSource returned invalid connection\");\n}","typeGuard":null,"tryCatchPattern":"try { engineConfiguration.buildProcessEngine(); }\ncatch (FlowableException e) {\n  if (e.getMessage().contains(\"no active connection found\")) { /* fix datasource/transaction wiring */ }\n  throw e;\n}","preventionTips":["Verify datasource bean wiring and pool health before building the engine.","Do not replace Flowable's transaction factory/interceptors without keeping connection attachment intact.","Monitor pool exhaustion and connection timeouts.","Smoke-test engine startup against the real datasource in CI."],"tags":["database","version-mismatch","schema-upgrade","configuration"],"backgroundTag":"schema-version-mismatch","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}