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
- Check the cause (SchedulerException) in the stack trace for the underlying JobStore/DB failure
- Verify quartz job-store configuration: quarkus.quartz.store-type and datasource availability
- If using the JDBC store, confirm the datasource connects (test with a query) and the Quartz tables exist
- 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
- Monitor the quartz JobStore datasource health before invoking scheduler control operations
- Prefer RAM store (store-type=memory) if you don't need persistence and want fewer failure modes
- Wrap scheduler admin operations in retry-with-backoff for transient DB issues
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
- Unable to pause job
- Unable to resume scheduler
- Unable to resume job
- Unable to unschedule job with identity: ${identity}
- Unable to start Scheduler
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/b47ce590ef0cdd08.
Report an issue: GitHub.