{"record":{"id":"32f0be3aeaee0a1d","repo":"quarkusio/quarkus","slug":"enabling-hibernate-search-management-endpoints-wh","errorCode":null,"errorMessage":"Enabling Hibernate Search management endpoints, while there are no Vert.x HTTP capabilities in the application, is not allowed.","messagePattern":"Enabling Hibernate Search management endpoints, while there are no Vert\\.x HTTP capabilities in the application, is not allowed\\.","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"extensions/hibernate-search-orm-elasticsearch/deployment/src/main/java/io/quarkus/hibernate/search/orm/elasticsearch/deployment/HibernateSearchElasticsearchProcessor.java","lineNumber":345,"sourceCode":"                                            schemaManagementStrategyPropertyKey, forcedValue);\n                                    return Map.of(schemaManagementStrategyPropertyKey, forcedValue);\n                                } else {\n                                    return Map.of();\n                                }\n                            }));\n                }\n            }\n        }\n    }\n\n    @Record(ExecutionTime.RUNTIME_INIT)\n    @BuildStep(onlyIf = HibernateSearchManagementEnabled.class)\n    void createManagementRoutes(Capabilities capabilities,\n            BuildProducer<RouteBuildItem> routes,\n            HibernateSearchElasticsearchRecorder recorder,\n            HibernateSearchElasticsearchBuildTimeConfig hibernateSearchElasticsearchBuildTimeConfig) {\n        if (capabilities.isMissing(Capability.VERTX_HTTP)) {\n            throw new IllegalArgumentException(\n                    \"Enabling Hibernate Search management endpoints, while there are no Vert.x HTTP capabilities \" +\n                            \"in the application, is not allowed.\");\n        }\n        String managementRootPath = hibernateSearchElasticsearchBuildTimeConfig.management().rootPath();\n\n        routes.produce(RouteBuildItem.newManagementRoute(\n                managementRootPath + (managementRootPath.endsWith(\"/\") ? \"\" : \"/\") + \"reindex\")\n                .withRoutePathConfigKey(\"quarkus.hibernate-search-orm.management.root-path\")\n                .withRequestHandler(recorder.managementHandler())\n                .displayOnNotFoundPage()\n                .build());\n    }\n}\n","sourceCodeStart":327,"sourceCodeEnd":359,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/hibernate-search-orm-elasticsearch/deployment/src/main/java/io/quarkus/hibernate/search/orm/elasticsearch/deployment/HibernateSearchElasticsearchProcessor.java#L327-L359","documentation":"Hibernate Search management endpoints (e.g. for mass indexing / reindexing over HTTP) are registered as Vert.x HTTP management routes at build time. If the quarkus-hibernate-search-orm-elasticsearch management feature is enabled but the application has no vertx-http capability (no quarkus-vertx-http / quarkus-vertx extension present), createManagementRoutes throws an IllegalArgumentException because there is no HTTP layer to attach the routes to.","triggerScenarios":"At build time: hibernate-search management endpoints are enabled (quarkus.hibernate-search-orm.management.enabled=true, activating HibernateSearchManagementEnabled condition) while the application lacks the Vert.x HTTP capability (capabilities.isMissing(Capability.VERTX_HTTP)).","commonSituations":"Enabling management endpoints in a background/worker app without RESTEasy Reactive or Vert.x HTTP; removing the quarkus-vertx-http dependency while keeping old management config; adding hibernate-search management config copied from a web application.","solutions":["Add quarkus-vertx-http (e.g. via quarkus-rest or the quarkus-vertx-http artifact) so the management routes have an HTTP server","If HTTP management is not needed, set quarkus.hibernate-search-orm.management.enabled=false or remove the management config"],"exampleFix":"// before (pom.xml: no vertx-http)\nquarkus.hibernate-search-orm.management.enabled=true\n// after: add dependency\n<dependency>\n  <groupId>io.quarkus</groupId>\n  <artifactId>quarkus-vertx-http</artifactId>\n</dependency>","handlingStrategy":"validation","validationCode":"// Ensure the vertx-http extension is on the classpath before enabling management:\ntry (var is = getClass().getClassLoader()\n    .getResourceAsStream(\"io/quarkus/vertx/http/runtime/VertxHttpRecorder.class\")) {\n  if (is == null) {\n    throw new IllegalStateException(\"Add quarkus-vertx-http before enabling Hibernate Search management endpoints\");\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only enable management endpoints in apps that include quarkus-vertx-http or quarkus-rest","Audit removals of the vertx-http dependency against remaining management config","Rely on Quarkus capability checks in CI builds to fail fast at build time"],"tags":["quarkus","hibernate-search","management-endpoints","vertx-http","capabilities"],"backgroundTag":"missing-capability-dependency","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}