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
- Identify the check by its name in the log message and reproduce its postAction failure manually
- Fix the underlying environment/config the post-action depends on (permissions, options, OS settings)
- 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
- Watch for this log line post-upgrade; the cause is swallowed, so reproduce the postAction manually
- Keep OS permissions and options the post-actions depend on consistent across environments
- Add the failing check name to your runbook and run startup checks in CI-like pre-flight
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
- Aborting index memtable flush for
- Already logging to
- An empty map of logger names and their logging levels was…
- Error setting log for on level . Please check logback…
- Exception occurred updating coordinatorWriteLatency metric
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)