{"record":{"id":"aa4cd79851ca4d02","repo":"flowable/flowable-engine","slug":"no-flowable-tables-in-db-set-property-name-data-aa4cd7","errorCode":null,"errorMessage":"no flowable tables in db. set <property name=\"databaseSchemaUpdate\" to value=\"true\" or value=\"create-drop\" (use create-drop for testing only!) in bean processEngineConfig","messagePattern":"no flowable tables in db\\. set <property name=\"databaseSchemaUpdate\" to value=\"true\" or value=\"create-drop\" \\(use create-drop for testing only!\\) in bean processEngineConfig","errorType":"console","errorClass":"FlowableException","httpStatus":null,"severity":"critical","filePath":"modules/flowable-idm-engine/src/main/java/org/flowable/idm/engine/impl/db/IdmDbSchemaManager.java","lineNumber":89,"sourceCode":"   public void schemaCheckVersion() {\n       try {\n           String dbVersion = getSchemaVersion();\n           if (!IdmEngine.VERSION.equals(dbVersion)) {\n               throw new FlowableWrongDbException(IdmEngine.VERSION, dbVersion);\n           }\n\n           String errorMessage = null;\n           if (!isTablePresent(IDM_PROPERTY_TABLE)) {\n               errorMessage = addMissingComponent(errorMessage, \"engine\");\n           }\n\n           if (errorMessage != null) {\n               throw new FlowableException(\"Flowable IDM 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 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\",\n                       e);\n           } else {\n               if (e instanceof RuntimeException) {\n                   throw (RuntimeException) e;\n               } else {\n                   throw new FlowableException(\"couldn't get db schema version\", e);\n               }\n           }\n       }\n\n       logger.debug(\"flowable idm db schema check successful\");\n   }\n   \n   protected String addMissingComponent(String missingComponents, String component) {\n       if (missingComponents == null) {\n           return \"Tables missing for component(s) \" + component;\n       }","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-idm-engine/src/main/java/org/flowable/idm/engine/impl/db/IdmDbSchemaManager.java#L71-L107","documentation":"Wrapped error thrown when the IDM schema version check fails because the underlying JDBC interaction reports missing Flowable tables. It adds remediation guidance: enable automatic schema creation via databaseSchemaUpdate. The original exception is attached as the cause.","triggerScenarios":"Engine bootstrap (schemaCheckVersion) where a SQL exception indicates the ACT_ID_* tables do not exist — typically any query against an empty database.","commonSituations":"First run against a brand-new empty database with databaseSchemaUpdate=false; pointing the engine at the wrong database/schema; DB migrations never applied.","solutions":["Set databaseSchemaUpdate to true (or create-drop for test environments) so Flowable creates the tables.","Run the IDM SQL create scripts for your DB vendor manually.","Confirm the JDBC URL points to the correct database/catalog containing the Flowable tables.","Inspect the cause exception to rule out permissions or connectivity issues rather than truly missing tables."],"exampleFix":"// before\n<property name=\"databaseSchemaUpdate\" value=\"false\" />\n// after\n<property name=\"databaseSchemaUpdate\" value=\"true\" />","handlingStrategy":"validation","validationCode":"try (Connection c = dataSource.getConnection(); ResultSet rs = c.getMetaData().getTables(null, null, \"ACT_ID_PROPERTY\", null)) {\n  if (!rs.next()) throw new IllegalStateException(\"Flowable IDM tables missing — enable databaseSchemaUpdate or run create scripts\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  idmEngine = config.buildEngine();\n} catch (FlowableException e) {\n  if (e.getMessage().startsWith(\"no flowable tables in db\")) {\n    // apply schema scripts then retry bootstrap\n  }\n  throw e;\n}","preventionTips":["Run Flowable SQL create scripts as part of environment provisioning.","Align Flowable version with the DB schema version.","Verify the JDBC URL points to the right database before startup.","Add a startup health check that verifies ACT_ID_* tables."],"tags":["database","schema","missing-tables","flowable"],"backgroundTag":"schema-validation-failed","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}