{"record":{"id":"a5cd06e231eb3aeb","repo":"hibernate/hibernate-orm","slug":"validatorfactory-reference-provided-via-s-sett","errorCode":null,"errorMessage":"ValidatorFactory reference (provided via '%s' setting) was not an instance of '%s': %s","messagePattern":"ValidatorFactory reference \\(provided via '(.+?)' setting\\) was not an instance of '(.+?)': (.+?)","errorType":"exception","errorClass":"IntegrationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/boot/beanvalidation/TypeSafeActivator.java","lineNumber":725,"sourceCode":"\t\t\treturn jakartaValidationFactory;\n\t\t}\n\t\tfinal var jpaValidationFactory = cfgService.getSetting(\n\t\t\t\tJPA_VALIDATION_FACTORY,\n\t\t\t\tvalue -> validatorFactory( value, JPA_VALIDATION_FACTORY )\n\t\t);\n\t\tif ( jpaValidationFactory != null ) {\n\t\t\tDEPRECATION_LOGGER.deprecatedSetting( JPA_VALIDATION_FACTORY, JAKARTA_VALIDATION_FACTORY );\n\t\t\treturn null;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate static ValidatorFactory validatorFactory(Object value, String setting) {\n\t\tif ( value instanceof ValidatorFactory validatorFactory ) {\n\t\t\treturn validatorFactory;\n\t\t}\n\t\telse {\n\t\t\tthrow new IntegrationException(\n\t\t\t\t\tString.format(\n\t\t\t\t\t\t\tLocale.ENGLISH,\n\t\t\t\t\t\t\t\"ValidatorFactory reference (provided via '%s' setting) was not an instance of '%s': %s\",\n\t\t\t\t\t\t\tsetting,\n\t\t\t\t\t\t\tValidatorFactory.class.getName(),\n\t\t\t\t\t\t\tvalue.getClass().getName()\n\t\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n}\n","sourceCodeStart":707,"sourceCodeEnd":737,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/boot/beanvalidation/TypeSafeActivator.java#L707-L737","documentation":"Error \"ValidatorFactory reference (provided via '%s' setting) was not an instance of '%s': %s\" thrown in hibernate/hibernate-orm.","triggerScenarios":"The ValidatorFactory supplied via configuration is of an incompatible type.","commonSituations":"Passing a non-jakarta ValidatorFactory (e.g. the old javax.validation one) through jakarta.persistence.validation.factory or a JNDI-bound factory after the javax-to-jakarta migration.","solutions":["Verify the object referenced by the given setting actually is a jakarta.validation.ValidatorFactory instance.","Remove mismatched javax.validation vs jakarta.validation artifacts from the classpath so only one validation API is visible.","If using JNDI lookup for the factory, confirm the JNDI binding holds a ValidatorFactory and not some other resource."],"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"}