apache/cassandra · error · InvalidRequestException
Invalidate CIDR permissions cache operation not supported by
Error message
Invalidate CIDR permissions cache operation not supported by %s
What it means
Thrown by CreateTypeStatement.apply when a field of the new user-defined type is an unfrozen UDT. Nested user types must be frozen because non-frozen UDT columns cannot be nested within other types; the inner type must be embedded as a fixed, immutable serialized value within the outer type.
Source
Thrown at src/java/org/apache/cassandra/auth/AllowAllCIDRAuthorizer.java:52
commonSetup();
}
@Override
public void initCaches()
{
// Caches not created when CIDR authorization is disabled
}
@Override
public boolean requireAuthorization()
{
return false;
}
@Override
public boolean invalidateCidrPermissionsCache(String roleName)
{
throw new InvalidRequestException("Invalidate CIDR permissions cache operation not supported by " + getClass().getSimpleName());
}
@Override
public void loadCidrGroupsCache()
{
throw new InvalidRequestException("Load CIDR groups cache operation not supported by " + getClass().getSimpleName());
}
@Override
public Set<String> lookupCidrGroupsForIp(InetAddress ip)
{
throw new InvalidRequestException("'Get CIDR groups for IP' operation not supported by " + getClass().getSimpleName());
}
@Override
public boolean hasAccessFromIp(RoleResource role, InetAddress ipAddress)
{
// Allow all accessesView on GitHub (pinned to 88fd0f6a0e)
Solutions
- Wrap the nested UDT in frozen<>: declare the field as 'frozen<inner_type>'.
- Re-run the CREATE TYPE after correcting the field type declaration.
Example fix
// before CREATE TYPE ks.person (address address, name text); // after CREATE TYPE ks.person (address frozen<address>, name text);
Defensive patterns
Strategy: validation
Validate before calling
if (isUdt(fieldType) && !fieldType.startsWith("frozen<"))
fieldType = "frozen<" + fieldType + ">"; Prevention
- Always wrap nested UDTs in frozen<> in CREATE TYPE fields.
- When porting schemas from Cassandra 2.x/3.x, add frozen<> to nested UDT references.
- Document UDT nesting rules in schema style guides.
When it happens
Trigger: Executing 'CREATE TYPE ks.outer (inner inner_type, ...)' where inner_type is a UDT declared without the frozen<> modifier, i.e. type.isUD() && !type.isFrozen().
Common situations: Defining nested UDTs by copying the syntax of top-level UDT columns; migrating schemas from versions where frozen was optional; hand-written DDL omitting frozen<> for nested types.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- category %s not found in %s
- GRANT operation is not supported by AllowAllAuthorizer
- REVOKE operation is not supported by AllowAllAuthorizer
- LIST PERMISSIONS operation is not supported by AllowAllAutho
- frozen<> is only allowed on collections, tuples, and user-de
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/fdd4b325ff687a83.
Report an issue: GitHub.