aeron-io/aeron · error · ClusterException
invalid member value
Error message
invalid member value: ${idAndEndpoints} within: ${value} What it means
ClusterMember.parse splits a comma-separated member list string (e.g. used in aeron.cluster.members) and requires each member to have between 6 and 8 comma-separated attributes (memberId plus endpoints). Malformed members are rejected with this exception.
Solutions
- Ensure each member has 6-8 comma-separated fields: id,client-facing,member,log,archive,replication[,catchup][,egress]
- Count the commas in each member entry; fix missing/extra commas
- Generate the members string programmatically from a template to avoid typos
- Validate config with ClusterMember.parse in a startup self-check
Example fix
// before "0,localhost:20000,localhost:20001,localhost:20002,localhost:20003,localhost:20004,localhost:20005,localhost:20006,localhost:20007" // 9 fields // after "0,localhost:20000,localhost:20001,localhost:20002,localhost:20003,localhost:20004,localhost:20005,localhost:20006" // 8 fields
Defensive patterns
Strategy: validation
Validate before calling
boolean isValidMemberEntry(String entry) {
int n = entry.split(",").length;
return n >= 6 && n <= 8;
} Try / catch
try {
ClusterMember.parse(membersString);
} catch (ClusterException e) {
log.error("bad aeron.cluster.members value: " + membersString, e);
} Prevention
- Generate member strings from a deployment template
- Validate the members config at startup before joining
- Keep one line per member spec and review commas in code review
When it happens
Trigger: Passing a member specification string to ClusterMember.parse where some member entry has fewer than 6 or more than 8 comma-separated fields, e.g. missing an endpoint.
Common situations: Hand-edited aeron.cluster.members config with a dropped or extra comma, missing catchup/transfer endpoints, or whitespace/format typos in cluster deployment tooling.
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 cluster member id, must be an integer value
- invalid member value
- memberId= not found in clusterMembers
- invalid entity tag, must be a number
- empty key not allowed at index
AI-assisted analysis of aeron-io/aeron@6d60124e15 (2026-09-12).
Data as JSON: /api/errors/4058712f2f8a263c.
Report an issue: GitHub.
Appendix: source
Thrown at aeron-cluster/src/main/java/io/aeron/cluster/ClusterMember.java:563
public static ClusterMember[] parse(final String value)
{
if (null == value || value.isEmpty())
{
return ClusterMember.EMPTY_MEMBERS;
}
final String[] memberValues = value.split("\\|");
final int length = memberValues.length;
final ClusterMember[] members = new ClusterMember[length];
for (int i = 0; i < length; i++)
{
final String idAndEndpoints = memberValues[i];
final String[] memberAttributes = idAndEndpoints.split(",");
if (memberAttributes.length < 6 || 8 < memberAttributes.length)
{
throw new ClusterException("invalid member value: " + idAndEndpoints + " within: " + value);
}
final int clusterMemberId;
try
{
clusterMemberId = Integer.parseInt(memberAttributes[0]);
}
catch (final NumberFormatException ex)
{
throw new ClusterException("invalid cluster member id, must be an integer value", ex);
}
final String archiveResponseEndpoint = 6 < memberAttributes.length ? memberAttributes[6] : null;
final String egressResponseEndpoint = 7 < memberAttributes.length ? memberAttributes[7] : null;
String endpoints = String.join(
",",
memberAttributes[1],View on GitHub (pinned to 6d60124e15)