flowable/flowable-engine · error · FlowableException
SQL Exception when getting value. Message: ${e.getMessage()}
Error message
SQL Exception when getting value. Message: ${e.getMessage()} What it means
AbstractSqlScriptBasedDbSchemaManager.getProperty reads a value (e.g. schema.version) from a property table via raw SQL. When the table-check flag is disabled and the SQLException indicates the table is missing, it throws FlowableException. If the exception does not look like a missing-table error it logs and returns null instead.
Source
Thrown at modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/db/AbstractSqlScriptBasedDbSchemaManager.java:202
SchemaManagerDatabaseConfiguration databaseConfiguration = getDatabaseConfiguration();
if (!databaseConfiguration.isTablePrefixIsSchema()) {
tableName = prependDatabaseTablePrefix(tableName);
}
try (PreparedStatement statement = databaseConfiguration.getConnection()
.prepareStatement("select VALUE_ from " + tableName + " where NAME_ = ?")) {
statement.setString(1, propertyName);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
return resultSet.getString(1);
} else {
return null;
}
} catch (SQLException e) {
if (!checkPropertyTablePresent && isMissingTablesException(e)) {
throw new FlowableException("SQL Exception when getting value. Message: " + e.getMessage(), e);
}
logger.error("Could not get property from table {}", tableName, e);
return null;
}
}
protected String getPropertyTable() {
return PROPERTY_TABLE;
}
public String getResourceForDbOperation(String directory, String operation, String component, String databaseType) {
return getResourcesRootDirectory() + directory + "/flowable." + databaseType + "." + operation + "." + component + ".sql";
}
protected abstract String getResourcesRootDirectory();
public void executeMandatorySchemaResource(String operation, String component) {
String databaseType = getDatabaseConfiguration().getDatabaseType();View on GitHub (pinned to d6d39ce1c6)
Solutions
- Run the schema creation/upgrade first (databaseSchemaUpdate=true or execute the schema scripts) so the property table exists.
- Check the chained SQLException cause for the real SQL error (permissions, wrong schema) and fix it.
- Verify the database user can access the schema containing ACT_GE_PROPERTY.
Example fix
// before <property name="databaseSchemaUpdate" value="false"/> // after <property name="databaseSchemaUpdate" value="true"/> <!-- creates missing tables on startup -->
Defensive patterns
Strategy: try-catch
Validate before calling
// ensure property table exists before reading properties DatabaseMetaData md = connection.getMetaData(); ResultSet rs = md.getTables(null, null, "ACT_GE_PROPERTY", null); boolean present = rs.next();
Try / catch
try { engineCfg.buildProcessEngine(); } catch (FlowableException e) { if (e.getMessage().contains("SQL Exception when getting value")) { /* run schema creation first */ } throw e; } Prevention
- Use databaseSchemaUpdate=true on first boot so tables are created before properties are read
- Do not drop ACT_GE_PROPERTY manually; use dbSchemaDrop
- Ensure the DB user can SELECT from all Flowable tables
- Confirm the connection uses the correct schema/catalog
When it happens
Trigger: getProperty called with checkPropertyTablePresent=false against a database where the property table (e.g. ACT_GE_PROPERTY) does not exist and the driver's error is recognized as a missing-table error — typically during schema install before tables exist.
Common situations: Fresh database without Flowable tables while a component tries to read schema properties; database user lacking SELECT permission on the property table; manually dropped tables; multi-schema setups where the table lives in another schema.
Understand the failure class
Background: "query failed", "%w: SQL error" — wrapped database query errors in Go libraries explained — this error's family across 3 libraries.
Related errors
- couldn't check if tables are already present using metadata:
- couldn't ${operation} db schema: ${exceptionSqlStatement}
- couldn't get ${context} db schema version
- Failed to get change log version from ${changeLogTableName}
- Could not retrieve database metadata: " + e.getMessage()
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/20224f073bcc8e60.
Report an issue: GitHub.