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

  1. Inspect the logged throwable to find why removeProvider failed (permissions, wrong name).
  2. Fix the provider name in cassandra.yaml crypto_provider config to match getProviderName().
  3. 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

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


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)