apache/cassandra · warning
Ignoring provided values
Error message
Ignoring provided values %s as they are not supported for %s (ignored values are: %s)
What it means
Values.guard intersects the provided values with the guardrail's configured 'ignored' set. Any provided value that is configured as not-supported-for-<what> is warned about and then passed to the ignoreAction (skipped/rejected silently). The user is told which of their values were dropped and what the ignored set is.
Solutions
- Remove the listed unsupported values from the statement/configuration.
- Replace them with the supported alternative for the current Cassandra version.
- If a value should be supported, adjust the guardrail's ignored configuration rather than the workload.
Example fix
// before
CREATE TABLE t (...) WITH compression = {'class': 'LZ4Compressor', 'unsupported_option': 1};
// after
CREATE TABLE t (...) WITH compression = {'class': 'LZ4Compressor'}; Defensive patterns
Strategy: validation
Validate before calling
// Compare your option values against the guardrail's ignored set before issuing the statement
Set<String> provided = parseOptions(ddl);
Set<String> ignored = guardrailsConfig.ignoredValuesFor(what);
if (!Collections.disjoint(provided, ignored)) {
logger.warn("Options will be ignored: {}", Sets.intersection(provided, ignored));
} Prevention
- Keep DDL templates in sync with the Cassandra version's supported options.
- Test schema migrations against a staging cluster with guardrails enabled.
- Treat 'ignored values' warnings as schema drift signals.
When it happens
Trigger: An operation (e.g. CREATE TABLE with unsupported compression options, altertable options) supplies values configured in the guardrail's ignored list; called from guard() itself and from test harnesses testValuesIgnored/testValuesDisallowed/testValuesUsers.
Common situations: Using table options, codecs, or feature settings deprecated/unsupported in the current version; copied DDL from older clusters referencing removed options.
Related errors
- default_keyspace_rf to be set
- default_keyspace_rf to be set
- Dictionary file does not exist.
- Dictionary file is not correctly sorted for case-sensitive…
- Dictionary file is not readable.
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/c8ee76e55c6fe567.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/db/guardrails/Values.java:119
* without an associated client come from asynchronous processes such as compaction, and we
* don't want to interrupt such processes.
*/
public void guard(Set<T> values, Consumer<T> ignoreAction, @Nullable ClientState state)
{
if (!enabled(state))
return;
Set<T> disallowed = disallowedValues.apply(state);
Set<T> toDisallow = Sets.intersection(values, disallowed);
if (!toDisallow.isEmpty())
fail(format("Provided values %s are not allowed for %s (disallowed values are: %s)",
toDisallow.stream().sorted().collect(Collectors.toList()), what, disallowed), state);
Set<T> ignored = ignoredValues.apply(state);
Set<T> toIgnore = Sets.intersection(values, ignored);
if (!toIgnore.isEmpty())
{
warn(format("Ignoring provided values %s as they are not supported for %s (ignored values are: %s)",
toIgnore.stream().sorted().collect(Collectors.toList()), what, ignored));
toIgnore.forEach(ignoreAction);
}
Set<T> warned = warnedValues.apply(state);
Set<T> toWarn = Sets.intersection(values, warned);
if (!toWarn.isEmpty())
warn(format("Provided values %s are not recommended for %s (warned values are: %s)",
toWarn.stream().sorted().collect(Collectors.toList()), what, warned));
}
}
View on GitHub (pinned to 88fd0f6a0e)