quarkusio/quarkus · error · RuntimeException

Unable to pause scheduler

Error message

Unable to pause scheduler

What it means

Quarkus wraps a Quartz SchedulerException thrown while putting the scheduler into standby mode (pause()) into this RuntimeException. Quartz throws SchedulerException when the underlying scheduler or its persistent JobStore fails to process the standby request. The original Quartz exception is attached as the cause.

Source

Thrown at extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzSchedulerImpl.java:356

    }

    @Override
    public String implementation() {
        return Scheduled.QUARTZ;
    }

    @Override
    public void pause() {
        if (!isStarted()) {
            throw notStarted();
        }
        try {
            if (scheduler != null) {
                scheduler.standby();
                events.fireSchedulerPaused();
            }
        } catch (SchedulerException e) {
            throw new RuntimeException("Unable to pause scheduler", e);
        }
    }

    @Override
    public void pause(String identity) {
        if (!isStarted()) {
            throw notStarted();
        }
        Objects.requireNonNull(identity, "Cannot pause - identity is null");
        if (identity.isEmpty()) {
            LOGGER.warn("Cannot pause - identity is empty");
            return;
        }
        try {
            String parsedIdentity = SchedulerUtils.lookUpPropertyValue(identity);
            QuartzTrigger trigger = scheduledTasks.get(parsedIdentity);
            if (trigger != null) {
                scheduler.pauseJob(new JobKey(parsedIdentity, Scheduler.class.getName()));

View on GitHub (pinned to e1c734241f)

Solutions

  1. Check the cause (SchedulerException) in the stack trace for the underlying JobStore/DB failure
  2. Verify quartz job-store configuration: quarkus.quartz.store-type and datasource availability
  3. If using the JDBC store, confirm the datasource connects (test with a query) and the Quartz tables exist
  4. Restart the application once the backing store is reachable

Example fix

// before
scheduler.pause(); // throws RuntimeException
// after
try {
    scheduler.pause();
} catch (RuntimeException e) {
    LOGGER.errorf(e.getCause(), "Quartz standby failed; check JobStore/DB connectivity");
}
Defensive patterns

Strategy: try-catch

Validate before calling

if (!scheduler.isStarted()) { throw new IllegalStateException("Scheduler not started"); }

Try / catch

try {
    scheduler.pause();
} catch (RuntimeException e) {
    LOGGER.errorf(e.getCause(), "Cannot pause scheduler: %s", e.getCause().getMessage());
    // alert / degrade
}

Prevention

When it happens

Trigger: Calling Scheduler.pause() (io.quarkus.scheduler.Scheduler) when the Quartz scheduler's JobStore (e.g. JDBC store) is unreachable or misconfigured, so scheduler.standby() fails with SchedulerException.

Common situations: Database-backed job store with the DB down or connection pool exhausted; clustered Quartz configuration pointing at an unreachable datasource; corrupted qrtz_ tables; scheduler instance failing to serialize job data.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/b47ce590ef0cdd08. Report an issue: GitHub.