apache/cassandra · warning
Uninstallation of failed
Error message
Uninstallation of {} failed What it means
During install(), if the target provider is missing, Cassandra attempts uninstall() to clean stale registrations before installing. If uninstall throws, it logs this warning with the throwable and continues; the original failure is then raised (or warned) via failureMessage. It signals that a prior/incomplete provider registration could not be cleaned up.
Solutions
- Inspect the logged throwable to find why removeProvider failed (permissions, wrong name).
- Fix the provider name in cassandra.yaml crypto_provider config to match getProviderName().
- Remove stale provider registrations manually from the java.security file and restart.
Example fix
// before
crypto_provider:
- class_name: org.apache.cassandra.security.ThreadLocalSecurityProvider
parameters:
- name: provider_name
value: "WrongName"
// after
value: "AmazonCorrettoCryptoProvider" // match actual provider name Defensive patterns
Strategy: validation
Validate before calling
// verify provider name matches what Cassandra will uninstall
String expected = org.apache.cassandra.security.DefaultCryptoProvider.getProviderName();
if (java.security.Security.getProvider(expected) == null)
System.out.println("Provider " + expected + " not registered; config mismatch likely"); Prevention
- Keep provider_name in cassandra.yaml exactly matching the provider's getName().
- Test crypto provider config on a staging JVM identical to production JDK.
- Avoid security-manager policies that block Security.removeProvider.
When it happens
Trigger: install() finds the provider missing, calls uninstall(), and Security.removeProvider() (or the provider's un-install hook) throws a Throwable (e.g. SecurityException from a security manager, or provider deregistration failure).
Common situations: JDK policy blocking provider modification; provider name mismatch between config and java.security; partially-initialized JVM security registry.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- was already installed on position . Check the configuration…
- failureMessage
- Access denied
- Access denied
- Access Denied
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/1e26076b0d3a68cf.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/security/AbstractCryptoProvider.java:171
}
catch (Throwable ex)
{
failureMessage = format("The installation of %s was not successful, reason: %s",
getProviderClassAsString(), ex.getMessage());
t = ex;
}
if (failureMessage != null)
{
// To be sure there is not any leftover, proactively remove this provider in case of any failure.
// This method returns silently if the provider is not installed or if name is null.
try
{
uninstall();
}
catch (Throwable throwable)
{
logger.warn("Uninstallation of {} failed", getProviderName(), throwable);
}
if (failOnMissingProvider)
throw new ConfigurationException(failureMessage, t);
else
logger.warn(failureMessage);
}
}
/**
* Uninstalls this crypto provider of name {@link #getProviderName()}
*
* @see Security#removeProvider(String)
*/
public void uninstall()
{
Security.removeProvider(getProviderName());
}View on GitHub (pinned to 88fd0f6a0e)