{"record":{"id":"8732059cf74225e2","repo":"quarkusio/quarkus","slug":"unknown-type","errorCode":null,"errorMessage":"Unknown type ","messagePattern":"Unknown type ","errorType":"exception","errorClass":"java.lang.IllegalStateException","httpStatus":null,"severity":"error","filePath":"extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java","lineNumber":424,"sourceCode":"                    }\n                } else {\n                    regex = regexValue.asString();\n                }\n\n                if (route.value(VALUE_PRODUCES) == null && baseProduces != null) {\n                    produces = baseProduces;\n                }\n                if (route.value(VALUE_CONSUMES) == null && baseConsumes != null) {\n                    consumes = baseConsumes;\n                }\n\n                HandlerType handlerType = HandlerType.NORMAL;\n                if (routeHandlerType != null) {\n                    handlerType = switch (routeHandlerType) {\n                        case NORMAL -> HandlerType.NORMAL;\n                        case BLOCKING -> HandlerType.BLOCKING;\n                        case FAILURE -> HandlerType.FAILURE;\n                        default -> throw new IllegalStateException(\"Unknown type \" + routeHandlerType);\n                    };\n                }\n\n                if (businessMethod.isBlocking()) {\n                    if (handlerType == HandlerType.NORMAL) {\n                        handlerType = HandlerType.BLOCKING;\n                    } else if (handlerType == HandlerType.FAILURE) {\n                        throw new IllegalStateException(\n                                \"Invalid combination - a reactive route cannot use @Blocking and use the type `failure` at the same time: \"\n                                        + businessMethod.getMethod().toString());\n                    }\n                }\n\n                if (routeHandler == null) {\n                    String handlerClass = generateHandler(\n                            new HandlerDescriptor(businessMethod.getMethod(), beanValidationAnnotations.orElse(null),\n                                    handlerType == HandlerType.FAILURE, produces),\n                            businessMethod.getBean(), businessMethod.getMethod(), gizmo, transformedAnnotations,","sourceCodeStart":406,"sourceCodeEnd":442,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/reactive-routes/deployment/src/main/java/io/quarkus/vertx/web/deployment/ReactiveRoutesProcessor.java#L406-L442","documentation":"ReactiveRoutesProcessor.addAdditionalRoutes maps a route handler method's @Route type annotation to an internal HandlerType. Only NORMAL, BLOCKING and FAILURE are supported; any other RouteHandlerType enum constant (e.g. from a future/unknown API) hits the default branch and throws IllegalStateException.","triggerScenarios":"Annotating a method with @Route(type = ...) whose RouteHandlerType value is not NORMAL/BLOCKING/FAILURE — possible with new enum constants added upstream that the processor doesn't yet handle.","commonSituations":"Using a newer quarkus-vertx-http API enum constant with an older reactive-routes processor; custom enum implementations; IDE auto-import of a wrong similarly named type.","solutions":["Use only type = RouteHandlerType.NORMAL, BLOCKING, or FAILURE on @Route methods","Align quarkus-vertx-http and reactive-routes versions (upgrade the whole Quarkus BOM together)","Check imports so the annotation uses io.quarkus.vertx.web.RouteFilter/route types, not a custom enum"],"exampleFix":"// before\n@Route(path = \"/x\", type = RouteHandlerType.OTHER)\n// after\n@Route(path = \"/x\", type = RouteHandlerType.NORMAL)","handlingStrategy":"type-guard","validationCode":"RouteHandlerType t = route.type();\nif (t != RouteHandlerType.NORMAL\n        && t != RouteHandlerType.BLOCKING\n        && t != RouteHandlerType.FAILURE) {\n    throw new IllegalStateException(\"Unsupported @Route type: \" + t);\n}","typeGuard":"boolean isSupported(RouteHandlerType t) {\n    return switch (t) {\n        case NORMAL, BLOCKING, FAILURE -> true;\n        default -> false;\n    };\n}","tryCatchPattern":null,"preventionTips":["Use only NORMAL/BLOCKING/FAILURE in @Route annotations","Keep all Quarkus extensions on the same BOM version","Verify annotation imports come from io.quarkus.vertx.web"],"tags":["quarkus","reactive-routes","vertx","build-time"],"backgroundTag":"invalid-enum-value","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}