aeron-io/aeron · error · ClusterException
invalid member value
Error message
invalid member value: ${endpoints} What it means
ClusterMember.parseEndpoints requires an endpoints string with exactly 5 comma-separated attributes (client-facing, member, log, archive, replication endpoints). Any other count is rejected with this exception.
Solutions
- Provide exactly 5 comma-separated endpoints: clientFacing,member,log,archive,replication
- Do not prepend the member id when calling parseEndpoints
- Use ClusterMember.parse (6-8 fields) for full member strings instead
- Print the split count when debugging the offending string
Example fix
// before parseEndpoints(0, "0,localhost:20000,localhost:20001,localhost:20002,localhost:20003") // 6 fields // after parseEndpoints(0, "localhost:20000,localhost:20001,localhost:20002,localhost:20003,localhost:20004") // 5 fields
Defensive patterns
Strategy: validation
Validate before calling
boolean hasFiveEndpoints(String endpoints) {
return endpoints.split(",").length == 5;
} Try / catch
try {
ClusterMember.parseEndpoints(id, endpoints);
} catch (ClusterException e) {
log.error("endpoints must have exactly 5 fields, got: " + endpoints, e);
} Prevention
- Use parse() for full member strings (id + 6-8 fields) and parseEndpoints() only for the 5-endpoint form
- Keep a canonical example of the endpoints format in your config tooling
- Validate endpoints strings in CI before deployment
When it happens
Trigger: Calling ClusterMember.parseEndpoints(id, endpoints) where endpoints.split(",").length != 5, e.g. passing a full member string with id and 8 fields instead of a 5-endpoint string.
Common situations: Confusing the full member list format with the single-member endpoints format in tooling or config, missing endpoints in aeron.cluster.member.endpoints-style settings.
Understand the failure class
Background: "Invalid ... format", "must be in format X", "does not look like a ..." — invalid argument format errors across CLI tools and libraries — this error's family across 17 libraries.
Related errors
- invalid member value
- invalid cluster member id, must be an integer value
- invalid entity tag, must be a number
- empty key not allowed at index
- invalid end of key at index
AI-assisted analysis of aeron-io/aeron@6d60124e15 (2026-09-12).
Data as JSON: /api/errors/902f3d6ed9c3f3d6.
Report an issue: GitHub.
Appendix: source
Thrown at aeron-cluster/src/main/java/io/aeron/cluster/ClusterMember.java:625
}
return members;
}
/**
* Parse a string containing the endpoints for a cluster node and passing to
* {@link #ClusterMember(int, String, String, String, String, String, String)}.
*
* @param id of the member node.
* @param endpoints comma separated.
* @return the {@link ClusterMember} with the endpoints set.
*/
public static ClusterMember parseEndpoints(final int id, final String endpoints)
{
final String[] memberAttributes = endpoints.split(",");
if (memberAttributes.length != 5)
{
throw new ClusterException("invalid member value: " + endpoints);
}
return new ClusterMember(
id,
memberAttributes[0],
memberAttributes[1],
memberAttributes[2],
memberAttributes[3],
memberAttributes[4],
endpoints);
}
/**
* Encode member endpoints from a cluster members array to a String.
*
* @param clusterMembers to fill the details from.
* @return String representation suitable for use with {@link #parse(String)}.
*/View on GitHub (pinned to 6d60124e15)