quarkusio/quarkus · error · IllegalArgumentException

ResteasyClientBuilder setter method not found: ${builderMeth

Error message

ResteasyClientBuilder setter method not found: ${builderMethodName}

What it means

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.

Source

Thrown at extensions/resteasy-classic/resteasy-client/runtime/src/main/java/io/quarkus/restclient/runtime/QuarkusRestClientBuilder.java:666

        }
    }

    @Override
    public Configuration getConfiguration() {
        return getConfigurationWrapper();
    }

    @Override
    public RestClientBuilder property(String name, Object value) {
        if (name.startsWith(RESTEASY_PROPERTY_PREFIX)) {
            // Makes it possible to configure some of the ResteasyClientBuilder delegate properties
            String builderMethodName = name.substring(RESTEASY_PROPERTY_PREFIX.length());
            Method builderMethod = Arrays.stream(ResteasyClientBuilder.class.getMethods())
                    .filter(m -> builderMethodName.equals(m.getName()) && m.getParameterCount() >= 1)
                    .findFirst()
                    .orElse(null);
            if (builderMethod == null) {
                throw new IllegalArgumentException("ResteasyClientBuilder setter method not found: " + builderMethodName);
            }
            Object[] arguments;
            if (builderMethod.getParameterCount() > 1) {
                if (value instanceof List) {
                    arguments = ((List<?>) value).toArray();
                } else {
                    throw new IllegalArgumentException(
                            "Value must be an instance of List<> for ResteasyClientBuilder setter method: "
                                    + builderMethodName);
                }
            } else {
                arguments = new Object[] { value };
            }
            try {
                builderMethod.invoke(builderDelegate, arguments);
            } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
                throw new IllegalStateException("Unable to invoke ResteasyClientBuilder method: " + builderMethodName, e);
            }

View on GitHub (pinned to e1c734241f)

Solutions

  1. Correct the resteasy.* property name so its suffix matches a public ResteasyClientBuilder method exactly (case-sensitive)
  2. Check ResteasyClientBuilder's Javadoc/API for the valid setter names available in your RESTEasy version
  3. If the option no longer exists, remove the property or use the documented quarkus.* config equivalent

Example fix

// before
builder.property("resteasy.connectionPoolSize", 50);
// after
builder.property("resteasy.connectionPoolSize", 50); // only if method exists; otherwise:
builder.property("resteasy.maxPooledPerRoute", 50);
Defensive patterns

Strategy: validation

Validate before calling

String prop = "connectionPoolSize";
boolean ok = Arrays.stream(ResteasyClientBuilder.class.getMethods())
    .anyMatch(m -> m.getName().equals(prop) && m.getParameterCount() >= 1);
if (!ok) throw new IllegalArgumentException("Unknown resteasy property: " + prop);

Try / catch

try {
    builder.property("resteasy." + name, value);
} catch (IllegalArgumentException e) {
    log.warn("Ignoring invalid resteasy property: " + e.getMessage());
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/92694da56cad36bc. Report an issue: GitHub.