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 accesses

View on GitHub (pinned to 88fd0f6a0e)

Solutions

  1. Wrap the nested UDT in frozen<>: declare the field as 'frozen<inner_type>'.
  2. 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

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


AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10). Data as JSON: /api/errors/fdd4b325ff687a83. Report an issue: GitHub.