{"record":{"id":"f06585ad3bdef0f6","repo":"quarkusio/quarkus","slug":"scheduler-implementation-not-available","errorCode":null,"errorMessage":"Scheduler implementation not available: ","messagePattern":"Scheduler implementation not available: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"extensions/scheduler/runtime/src/main/java/io/quarkus/scheduler/runtime/CompositeScheduler.java","lineNumber":147,"sourceCode":"    }\n\n    @Override\n    public String implementation() {\n        return Scheduled.AUTO;\n    }\n\n    public class CompositeJobDefinition extends AbstractJobDefinition<CompositeJobDefinition> {\n\n        public CompositeJobDefinition(String identity) {\n            super(identity);\n        }\n\n        @Override\n        public CompositeJobDefinition setExecuteWith(String implementation) {\n            Objects.requireNonNull(implementation);\n            if (!Scheduled.AUTO.equals(implementation)) {\n                if (schedulers.stream().map(Scheduler::implementation).noneMatch(implementation::equals)) {\n                    throw new IllegalArgumentException(\"Scheduler implementation not available: \" + implementation);\n                }\n            }\n            return super.setExecuteWith(implementation);\n        }\n\n        @Override\n        public Trigger schedule() {\n            String impl = implementation;\n            if (Scheduled.AUTO.equals(impl)) {\n                impl = schedulerContext.autoImplementation();\n            }\n            for (Scheduler scheduler : schedulers) {\n                if (scheduler.implementation().equals(impl)) {\n                    return copy(scheduler.newJob(identity)).schedule();\n                }\n            }\n            throw new IllegalStateException(\"Matching scheduler implementation not found: \" + implementation);\n        }","sourceCodeStart":129,"sourceCodeEnd":165,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/scheduler/runtime/src/main/java/io/quarkus/scheduler/runtime/CompositeScheduler.java#L129-L165","documentation":"CompositeScheduler.JobDefinition.setExecuteWith validates that the requested scheduler implementation is one of the schedulers backing the composite scheduler. Passing an unknown implementation name fails fast with this IllegalArgumentException.","triggerScenarios":"Calling jobDefinition.setExecuteWith(\"some-impl\") on a job definition from the composite scheduler where \"some-impl\" is not registered in that composite (and is not Scheduled.AUTO).","commonSituations":"Typo in the implementation name; targeting the Quartz implementation without the quarkus-quartz extension on the classpath; copying a name from docs that doesn't match registered implementations.","solutions":["Use Scheduler.AUTO to let the composite pick, or one of the actually registered implementation names (e.g. \"quartz\", \"simple\")","Add the extension providing the desired scheduler implementation (e.g. quarkus-quartz)","Log/inspect the set of available implementations and fix the string","Remove the setExecuteWith call if you don't need a specific backend"],"exampleFix":"// before\nScheduler.CompositeJobDefinition def = scheduler.newJob(\"id\")\n    .setExecuteWith(\"quartz-typo\");\n// after\ndef.setExecuteWith(Scheduled.AUTO); // or \"quartz\" with quarkus-quartz present","handlingStrategy":"validation","validationCode":"boolean ok = Scheduled.AUTO.equals(impl)\n    || scheduler.implementations().contains(impl);\nif (!ok) throw new IllegalArgumentException(\"Unknown scheduler impl: \" + impl);","typeGuard":null,"tryCatchPattern":"try { def.setExecuteWith(impl); }\ncatch (IllegalArgumentException e) { def.setExecuteWith(Scheduled.AUTO); }","preventionTips":["Prefer Scheduled.AUTO unless a specific backend is required","Confirm the backend extension (e.g. quarkus-quartz) is on the classpath","Use constants instead of raw strings for implementation names","List available implementations before wiring jobs"],"tags":["scheduler","api-misuse","quarkus"],"backgroundTag":"unknown-scheduler-implementation","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}