{"record":{"id":"3daf1db3a305d7f0","repo":"quarkusio/quarkus","slug":"single-parameters-should-not-be-marked-with-separ","errorCode":null,"errorMessage":"Single parameters should not be marked with @Separator on ","messagePattern":"Single parameters should not be marked with @Separator on ","errorType":"validation","errorClass":"DeploymentException","httpStatus":null,"severity":"error","filePath":"independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/EndpointIndexer.java","lineNumber":1540,"sourceCode":"        if (!typeHandled) {\n            elementType = toClassName(paramType, currentClassInfo, actualEndpointInfo, index);\n            addReaderForType(additionalReaders, paramType);\n\n            if (type != ParameterType.CONTEXT && type != ParameterType.BEAN && type != ParameterType.BODY\n                    && type != ParameterType.ASYNC_RESPONSE && type != ParameterType.MULTI_PART_FORM) {\n                handleOtherParam(existingConverters, errorLocation, hasRuntimeConverters, builder, elementType,\n                        currentMethodInfo);\n            }\n            if (type == ParameterType.CONTEXT && elementType.equals(SseEventSink.class.getName())) {\n                builder.setSse(true);\n            }\n        }\n        if (suspendedAnnotation != null && !elementType.equals(AsyncResponse.class.getName())) {\n            throw new DeploymentException(\n                    \"Can only inject AsyncResponse on methods marked @Suspended on \" + builder.getErrorLocation());\n        }\n        if (builder.isSingle() && builder.getSeparator() != null) {\n            throw new DeploymentException(\n                    \"Single parameters should not be marked with @Separator on \" + builder.getErrorLocation());\n        }\n        builder.setElementType(elementType);\n        return builder;\n    }\n\n    private boolean isFormParamConvertible(Type paramType) {\n        // let's not call the array converter for byte[] for multipart\n        if (paramType.kind() == Kind.ARRAY\n                && paramType.asArrayType().constituent().kind() == Kind.PRIMITIVE\n                && paramType.asArrayType().constituent().asPrimitiveType().primitive() == Primitive.BYTE) {\n            return false;\n        } else {\n            return true;\n        }\n    }\n\n    protected boolean handleCustomParameter(Map<DotName, AnnotationInstance> anns, PARAM builder, Type paramType, boolean field,","sourceCodeStart":1522,"sourceCodeEnd":1558,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/EndpointIndexer.java#L1522-L1558","documentation":"Build-time validation error in EndpointIndexer: @Separator was placed on a single (non-Collection/array) parameter of an endpoint method. Separators only apply when binding multiple values into a collection-like parameter, so the indexer rejects it, naming the method in the message.","triggerScenarios":"Thrown at independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/EndpointIndexer.java:1540 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove @Separator from the single-valued parameter","Or change the parameter to a List/Set/array type if multiple separated values are intended"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}