apache/cassandra · warning
is not recommended
Error message
{featureName} is not recommended What it means
EnableFlag.ensureEnabled evaluates a guardrail-protected feature (featureName) against the client state. When the feature is explicitly disallowed the client gets a failure; when it merely crosses the 'warned' threshold, this warning is raised and the operation continues. It is a recommendation signal, not a hard failure.
Solutions
- Review the feature's documentation and decide whether to proceed despite the recommendation.
- Adjust the guardrail's warned threshold in cassandra.yaml if the feature is acceptable in your environment.
- Set the guardrail's enabled/allowed flag explicitly if you want the operation blocked or silenced.
Example fix
// before (cassandra.yaml) full_query_logging_warn_threshold: 10 // after — warn earlier or raise threshold deliberately full_query_logging_warn_threshold: 100
Defensive patterns
Strategy: validation
Validate before calling
// Before enabling a feature, check the guardrail state
if (Guardrails.instance.isEnabled(EnableFlag.FEATURE_NAME)) {
logger.info("Feature {} is allowed", FEATURE_NAME);
} Prevention
- Review guardrail warn thresholds after every Cassandra upgrade.
- Document in runbooks which features are flagged 'not recommended'.
- Monitor guardrail warn counters in metrics.
When it happens
Trigger: A client operation (e.g. enabling a risky feature such asConsistentReplacement or user-defined functions) is issued while the guardrail's warned flag configuration matches the cluster/client state, after the not-allowed check passed.
Common situations: Operators enabling features flagged as discouraged in a production cluster; upgraded clusters inheriting default warn thresholds for features now considered unsafe.
Understand the failure class
Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.
Related errors
- Async Profiler is not enabled. Enable it by setting
- Auto-repair scheduler is disabled.
- Cannot change transactional mode to
- default_keyspace_rf to be set
- default_keyspace_rf to be set
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/6b5aa3aa2f54542c.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/db/guardrails/EnableFlag.java:132
* @param state The client state, used to skip the check if the query is internal or is done by a superuser. A
* {@code null} value means that the check should be done regardless of the query, although it
* won't throw any exception if the failure threshold is exceeded. This is so because checks
* without an associated client come from asynchronous processes such as compaction, and we don't
* want to interrupt such processes.
*/
public void ensureEnabled(String featureName, @Nullable ClientState state)
{
if (!enabled(state))
return;
if (!enabled.test(state))
{
fail(featureName + " is not allowed", state);
return;
}
if (warned.test(state))
warn(featureName + " is not recommended");
}
}
View on GitHub (pinned to 88fd0f6a0e)