{"record":{"id":"1819558df87bbfbd","repo":"flowable/flowable-engine","slug":"illegal-format-for-version-versionstring","errorCode":null,"errorMessage":"Illegal format for version: ${versionString}","messagePattern":"Illegal format for version: (.+?)","errorType":"exception","errorClass":"FlowableException","httpStatus":null,"severity":"error","filePath":"modules/flowable-engine/src/main/java/org/flowable/engine/impl/db/ProcessDbSchemaManager.java","lineNumber":252,"sourceCode":"            if (lockManager != null) {\n                lockManager.releaseLock();\n            }\n        }\n\n    }\n\n    public boolean isEngineTablePresent() {\n        return isTablePresent(\"ACT_RU_EXECUTION\");\n    }\n\n    public boolean isHistoryTablePresent() {\n        return isTablePresent(\"ACT_HI_PROCINST\");\n    }\n\n    protected String getCleanVersion(String versionString) {\n        Matcher matcher = CLEAN_VERSION_REGEX.matcher(versionString);\n        if (!matcher.find()) {\n            throw new FlowableException(\"Illegal format for version: \" + versionString);\n        }\n\n        String cleanString = matcher.group();\n        try {\n            Double.parseDouble(cleanString); // try to parse it, to see if it is\n                                             // really a number\n            return cleanString;\n        } catch (NumberFormatException nfe) {\n            throw new FlowableException(\"Illegal format for version: \" + versionString, nfe);\n        }\n    }\n\n    protected ProcessEngineConfigurationImpl getProcessEngineConfiguration() {\n        return CommandContextUtil.getProcessEngineConfiguration();\n    }\n\n    @Override\n    protected String getResourcesRootDirectory() {","sourceCodeStart":234,"sourceCodeEnd":270,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine/src/main/java/org/flowable/engine/impl/db/ProcessDbSchemaManager.java#L234-L270","documentation":"Flowable throws this when upgrading a process-engine schema: the version string found in the database metadata does not match the expected format (e.g. '6.7.2'). getCleanVersion uses CLEAN_VERSION_REGEX to extract a numeric version prefix; if the regex does not match, the string is not a recognizable version and schema upgrade logic aborts.","triggerScenarios":"Running Flowable with schema-upgrade enabled against a database whose Flowable version marker (e.g. in ACT_GE_PROPERTY / schema version property) is missing, empty, corrupted, or a non-numeric/custom string that CLEAN_VERSION_REGEX cannot match.","commonSituations":"Database was created by a different tool or hand-edited; version property row was truncated; migrating between major Flowable/Acitiviti lineages where version strings differ; copying schema metadata between environments.","solutions":["Inspect the schema version property (ACT_GE_PROPERTY row schema.version / schema.history) and correct it to a valid Flowable version string such as '6.7.2'","If the DB is from an unsupported lineage, use the official upgrade scripts instead of auto-upgrade","Set databaseSchemaUpdate to 'false' and manage schema versions manually with the provided SQL scripts","Restore the version metadata from a backup of a healthy environment"],"exampleFix":"// before (corrupted schema property)\nschema.version = 'unknown'\n// after\nUPDATE ACT_GE_PROPERTY SET VALUE_ = '6.7.2' WHERE NAME_ = 'schema.version';","handlingStrategy":"validation","validationCode":"String v = managementService.getProperties().get(\"schema.version\");\nif (v == null || !v.matches(\"\\\\d+(\\.\\d+)*\")) {\n    throw new IllegalStateException(\"Corrupted schema.version property: \" + v);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never hand-edit ACT_GE_PROPERTY rows","Use databaseSchemaUpdate=false in production and apply official upgrade scripts","Snapshot the DB before schema upgrades"],"tags":["database","schema-upgrade","versioning"],"backgroundTag":"invalid-argument-format","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"}