{"record":{"id":"b40a44c0b6d26163","repo":"apache/dolphinscheduler","slug":"quartz-delete-job-error","errorCode":"QUARTZ_DELETE_JOB_ERROR","errorMessage":"QUARTZ_DELETE_JOB_ERROR","messagePattern":"QUARTZ_DELETE_JOB_ERROR","errorType":"error_code","errorClass":"SchedulerException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-scheduler-plugin/dolphinscheduler-scheduler-quartz/src/main/java/org/apache/dolphinscheduler/scheduler/quartz/QuartzScheduler.java","lineNumber":81,"sourceCode":"            scheduler.scheduleJob(jobDetail, Sets.newHashSet(cornTrigger), true);\n            log.info(\"Success scheduleJob: {} with trigger: {} at quartz\", jobDetail, cornTrigger);\n        } catch (Exception e) {\n            log.error(\"Failed to add scheduler task, projectId: {}, scheduler: {}\", projectId, schedule, e);\n            throw new SchedulerException(QuartzSchedulerExceptionEnum.QUARTZ_UPSERT_JOB_ERROR, e);\n        }\n    }\n\n    @Override\n    public void deleteScheduleTask(int projectId, int scheduleId) throws SchedulerException {\n        JobKey jobKey = QuartzJobKey.of(projectId, scheduleId).toJobKey();\n        try {\n            if (scheduler.checkExists(jobKey)) {\n                log.info(\"Try to delete scheduler task, projectId: {}, schedulerId: {}\", projectId, scheduleId);\n                scheduler.deleteJob(jobKey);\n            }\n        } catch (Exception e) {\n            log.error(\"Failed to delete scheduler task, projectId: {}, schedulerId: {}\", projectId, scheduleId, e);\n            throw new SchedulerException(QuartzSchedulerExceptionEnum.QUARTZ_DELETE_JOB_ERROR, e);\n        }\n    }\n\n    @Override\n    public void close() {\n        // nothing to do\n        try {\n            scheduler.shutdown();\n        } catch (Exception e) {\n            throw new SchedulerException(QuartzSchedulerExceptionEnum.QUARTZ_SCHEDULER_SHOWDOWN_ERROR, e);\n        }\n    }\n}\n","sourceCodeStart":63,"sourceCodeEnd":95,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-scheduler-plugin/dolphinscheduler-scheduler-quartz/src/main/java/org/apache/dolphinscheduler/scheduler/quartz/QuartzScheduler.java#L63-L95","documentation":"Quartz deleteJob(jobKey) or checkExists(jobKey) threw while removing the job identified by projectId+scheduleId. The guard only deletes when the key exists, so the failure is infrastructure-level (store/DB access, cluster lock) rather than a missing job; a failed delete leaves an orphaned Quartz trigger that can still fire.","triggerScenarios":"Thrown at dolphinscheduler-scheduler-plugin/dolphinscheduler-scheduler-quartz/src/main/java/org/apache/dolphinscheduler/scheduler/quartz/QuartzScheduler.java:81 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check Quartz JDBC store connectivity and QRTZ_LOCKS contention from other masters","Retry the delete after the transient store error clears","If the job key is inconsistent, inspect QRTZ_JOB_DETAILS/QRTZ_TRIGGERS for entries keyed 'project_{projectId}_schedule_{scheduleId}' and remove them manually"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"02eac45a1b6676e639fcbfb4be2243de5771b05d","analyzedAt":"2026-09-06T17:43:00.555Z","contentChangedAt":"2026-09-06T17:43:00.555Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}