{"record":{"id":"92694da56cad36bc","repo":"quarkusio/quarkus","slug":"resteasyclientbuilder-setter-method-not-found-b","errorCode":null,"errorMessage":"ResteasyClientBuilder setter method not found: ${builderMethodName}","messagePattern":"ResteasyClientBuilder setter method not found: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"extensions/resteasy-classic/resteasy-client/runtime/src/main/java/io/quarkus/restclient/runtime/QuarkusRestClientBuilder.java","lineNumber":666,"sourceCode":"        }\n    }\n\n    @Override\n    public Configuration getConfiguration() {\n        return getConfigurationWrapper();\n    }\n\n    @Override\n    public RestClientBuilder property(String name, Object value) {\n        if (name.startsWith(RESTEASY_PROPERTY_PREFIX)) {\n            // Makes it possible to configure some of the ResteasyClientBuilder delegate properties\n            String builderMethodName = name.substring(RESTEASY_PROPERTY_PREFIX.length());\n            Method builderMethod = Arrays.stream(ResteasyClientBuilder.class.getMethods())\n                    .filter(m -> builderMethodName.equals(m.getName()) && m.getParameterCount() >= 1)\n                    .findFirst()\n                    .orElse(null);\n            if (builderMethod == null) {\n                throw new IllegalArgumentException(\"ResteasyClientBuilder setter method not found: \" + builderMethodName);\n            }\n            Object[] arguments;\n            if (builderMethod.getParameterCount() > 1) {\n                if (value instanceof List) {\n                    arguments = ((List<?>) value).toArray();\n                } else {\n                    throw new IllegalArgumentException(\n                            \"Value must be an instance of List<> for ResteasyClientBuilder setter method: \"\n                                    + builderMethodName);\n                }\n            } else {\n                arguments = new Object[] { value };\n            }\n            try {\n                builderMethod.invoke(builderDelegate, arguments);\n            } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {\n                throw new IllegalStateException(\"Unable to invoke ResteasyClientBuilder method: \" + builderMethodName, e);\n            }","sourceCodeStart":648,"sourceCodeEnd":684,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/resteasy-classic/resteasy-client/runtime/src/main/java/io/quarkus/restclient/runtime/QuarkusRestClientBuilder.java#L648-L684","documentation":"In Quarkus's classic REST client, unknown resteasy.* properties set via the MicroProfile Rest Client builder's property() method are applied reflectively to the underlying ResteasyClientBuilder by matching a method name derived from the property name. This error is thrown when no public method with that name and at least one parameter exists on ResteasyClientBuilder. It means the configuration property being forwarded does not correspond to any builder setter.","triggerScenarios":"Calling RestclientBuilder.property(\"resteasy.someUnknownOption\", value) or setting a quarkus.rest-client.* resteasy-prefixed config key whose suffix (after 'resteasy.') does not match any public method name on ResteasyClientBuilder.","commonSituations":"Typos in resteasy.* config keys; copying config from another REST client version where the builder method was renamed or removed; upgrading Quarkus/RESTEasy where methods were deprecated and dropped.","solutions":["Correct the resteasy.* property name so its suffix matches a public ResteasyClientBuilder method exactly (case-sensitive)","Check ResteasyClientBuilder's Javadoc/API for the valid setter names available in your RESTEasy version","If the option no longer exists, remove the property or use the documented quarkus.* config equivalent"],"exampleFix":"// before\nbuilder.property(\"resteasy.connectionPoolSize\", 50);\n// after\nbuilder.property(\"resteasy.connectionPoolSize\", 50); // only if method exists; otherwise:\nbuilder.property(\"resteasy.maxPooledPerRoute\", 50);","handlingStrategy":"validation","validationCode":"String prop = \"connectionPoolSize\";\nboolean ok = Arrays.stream(ResteasyClientBuilder.class.getMethods())\n    .anyMatch(m -> m.getName().equals(prop) && m.getParameterCount() >= 1);\nif (!ok) throw new IllegalArgumentException(\"Unknown resteasy property: \" + prop);","typeGuard":null,"tryCatchPattern":"try {\n    builder.property(\"resteasy.\" + name, value);\n} catch (IllegalArgumentException e) {\n    log.warn(\"Ignoring invalid resteasy property: \" + e.getMessage());\n}","preventionTips":["Only use resteasy.* property names copied verbatim from ResteasyClientBuilder method names","Pin your Quarkus/RESTEasy version and re-check config keys after upgrades","Prefer documented quarkus.rest-client.* keys over raw resteasy.* pass-through"],"tags":["restclient","reflection","configuration"],"backgroundTag":"unknown-config-property","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"}