{"record":{"id":"0f84b1a9de9796ee","repo":"hibernate/hibernate-orm","slug":"increment-size-cannot-be-less-than-1-0f84b1","errorCode":null,"errorMessage":"increment size cannot be less than 1","messagePattern":"increment size cannot be less than 1","errorType":"exception","errorClass":"HibernateException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/id/enhanced/PooledLoOptimizer.java","lineNumber":62,"sourceCode":"\tprivate static class GenerationState {\n\t\t// last value read from db source\n\t\tprivate Long lastSourceValue;\n\t\t// the current generator value\n\t\tprivate long value;\n\t\t// the value at which we'll hit the db again\n\t\tprivate long upperLimitValue;\n\t}\n\n\t/**\n\t * Constructs a {@code PooledLoOptimizer}.\n\t *\n\t * @param returnClass The Java type of the values to be generated\n\t * @param incrementSize The increment size.\n\t */\n\tpublic PooledLoOptimizer(Class<?> returnClass, int incrementSize) {\n\t\tsuper( returnClass, incrementSize );\n\t\tif ( incrementSize < 1 ) {\n\t\t\tthrow new HibernateException( \"increment size cannot be less than 1\" );\n\t\t}\n\t\tOPTIMIZER_MESSAGE_LOGGER.creatingPooledLoOptimizer( incrementSize, returnClass.getName() );\n\t}\n\n\t@Override\n\tpublic Serializable generate(AccessCallback callback) {\n\t\tlock.lock();\n\t\ttry {\n\t\t\tfinal var generationState = locateGenerationState( callback.getTenantIdentifier() );\n\t\t\tif ( generationState.lastSourceValue == null\n\t\t\t\t\t|| generationState.value >= generationState.upperLimitValue ) {\n\t\t\t\tgenerationState.lastSourceValue = callback.getNextValue();\n\t\t\t\tgenerationState.upperLimitValue = generationState.lastSourceValue + incrementSize;\n\t\t\t\tgenerationState.value = generationState.lastSourceValue;\n\t\t\t\t// handle cases where the initial value is less than one (hsqldb, for instance)\n\t\t\t\twhile ( generationState.value < 1 ) {\n\t\t\t\t\tgenerationState.value++;\n\t\t\t\t}","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/id/enhanced/PooledLoOptimizer.java#L44-L80","documentation":"Error \"increment size cannot be less than 1\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown when an identifier optimizer is configured with an increment size smaller than 1.","commonSituations":"Typical situations: setting hibernate.id.optimizer or allocationSize to 0 or a negative value; a mismatched sequence increment combined with an invalid optimizer configuration.","solutions":["Set the generator increment size (allocationSize) to a value >= 1."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}