apache/cassandra · warning

Failed to run startup check post-action on

Error message

Failed to run startup check post-action on 

What it means

A WARN log (not an exception) from StartupChecks.verify (the post-action pass). After all startup checks pass, each check's postAction(options) is run; if any postAction throws a Throwable, Cassandra catches it and logs 'Failed to run startup check post-action on <check name>' and continues startup. The thrown cause is intentionally swallowed here, so the log gives only the check name, not the underlying error.

Solutions

  1. Identify the check by its name in the log message and reproduce its postAction failure manually
  2. Fix the underlying environment/config the post-action depends on (permissions, options, OS settings)
  3. If startup still succeeds but the check's effect is required, treat this as a real failure: file/investigate the swallowed Throwable by running the check with debug logging or under a debugger
Defensive patterns

Strategy: try-catch

Validate before calling

// Verify startup-check post-actions succeed in a pre-flight run
for (StartupCheck check : StartupChecks.getStartupChecks()) {
    try { check.postAction(options); }
    catch (Throwable t) { System.err.println("Pre-flight post-action failed on " + check.name() + ": " + t); }
}

Try / catch

try {
    checks.verify(options);
} catch (Throwable t) {
    // startup itself failed; but note post-action failures only WARN and swallow the cause
    logger.error("Startup checks failed", t);
}

Prevention

When it happens

Trigger: Any StartupCheck registered with verifySuccess whose postAction(StartupChecks.Options) throws (e.g. a check mutating JVM options or applying a fix-up fails at runtime) during StartupChecks.verify() at node startup.

Common situations: OS/JVM environments where a check's post-action side effect fails (e.g. setting rlimits, applying kernel-bug workarounds); misconfigured options passed to startup checks; partially provisioned containers where post-action commands fail.

Understand the failure class

Background: "This is a bug, please report it": internal invariant violations, unreachable panics, and SNH errors explained — this error's family across 47 libraries.

Related errors


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

Appendix: source

Thrown at src/java/org/apache/cassandra/service/StartupChecks.java:238

     * Run the configured tests and return a report detailing the results.
     * @throws StartupException if any test determines that the
     * system is not in an valid state to startup
     * @param options options to pass to respective checks for their configration
     */
    public void verify(StartupChecksConfiguration options) throws StartupException
    {
        for (StartupCheck test : preFlightChecks)
            test.execute(options);

        for (StartupCheck test : preFlightChecks)
        {
            try
            {
                test.postAction(options);
            }
            catch (Throwable t)
            {
                logger.warn("Failed to run startup check post-action on " + test.name());
            }
        }
    }

    // https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1057843
    public static final StartupCheck checkKernelBug1057843 = new StartupCheck()
    {
        @Override
        public String name()
        {
            return "kernel_bug_1057843";
        }

        @Override
        public void execute(StartupChecksConfiguration configuration) throws StartupException
        {
            if (configuration.isDisabled(name()))
                return;

View on GitHub (pinned to 88fd0f6a0e)