apache/cassandra · error · org.apache.cassandra.exceptions.InvalidRequestException
Invalid value(s) for DATACENTERS
Error message
Invalid value(s) for DATACENTERS '%s',All values must be valid datacenters
What it means
InvalidRequestException from DCPermissions.validate: the set of datacenter names supplied for a role's DATACENTERS option contains one or more names that are not valid datacenters in the current cluster metadata (Datacenters.getValidDatacenters). The difference set names exactly which values are unknown.
Solutions
- Verify datacenter names with nodetool status or cluster metadata and correct typos
- Create/enable the intended datacenter before referencing it
- Remove decommissioned or renamed datacenters from the role's DATACENTERS option
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/java/org/apache/cassandra/auth/DCPermissions.java:100 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/71de40458183eca5.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/auth/DCPermissions.java:100
public int hashCode()
{
return subset.hashCode();
}
public String toString()
{
StringJoiner joiner = new StringJoiner(", ");
subset.forEach(joiner::add);
return joiner.toString();
}
public void validate()
{
Set<String> unknownDcs = Sets.difference(subset, Datacenters.getValidDatacenters(ClusterMetadata.current()));
if (!unknownDcs.isEmpty())
{
throw new InvalidRequestException(String.format("Invalid value(s) for DATACENTERS '%s'," +
"All values must be valid datacenters", subset));
}
}
}
private static final DCPermissions ALL = new DCPermissions()
{
public boolean canAccess(String dc)
{
return true;
}
public boolean restrictsAccess()
{
return false;
}
public Set<String> allowedDCs()View on GitHub (pinned to 88fd0f6a0e)