{"record":{"id":"27c4295a92963915","repo":"risingwavelabs/risingwave","slug":"cannot-reschedule-jobs-when-creating-jobs-wit","errorCode":null,"errorMessage":"cannot reschedule jobs {:?} when creating jobs with unreschedulable backfill fragments","messagePattern":"cannot reschedule jobs (.+?) when creating jobs with unreschedulable backfill fragments","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/meta/src/barrier/checkpoint/control.rs","lineNumber":1278,"sourceCode":"            ..\n        }) = &command\n            && !self.independent_checkpoint_job_controls.is_empty()\n        {\n            let blocked_job_ids =\n                self.collect_reschedule_blocked_jobs_for_independent_jobs_inflight()?;\n            let blocked_reschedule_job_ids = self.collect_reschedule_blocked_job_ids(\n                &reschedule_plan.reschedules,\n                &reschedule_plan.fragment_actors,\n                &blocked_job_ids,\n            );\n            if !blocked_reschedule_job_ids.is_empty() {\n                warn!(\n                    blocked_reschedule_job_ids = ?blocked_reschedule_job_ids,\n                    \"reject reschedule fragments related to creating unreschedulable backfill jobs\"\n                );\n                if let Some(notifier) = notifier_start {\n                    notifier.notify_start_failed(\n                        anyhow!(\n                            \"cannot reschedule jobs {:?} when creating jobs with unreschedulable backfill fragments\",\n                            blocked_reschedule_job_ids\n                        )\n                            .into(),\n                    );\n                }\n                return Ok(());\n            }\n        }\n\n        if !matches!(&command, Some(Command::CreateStreamingJob { .. }))\n            && self.database_info.is_empty()\n        {\n            assert!(\n                self.independent_checkpoint_job_controls.is_empty(),\n                \"should not have snapshot backfill job when there is no normal job in database\"\n            );\n            // Drop the guard to remove the metric series of this database.","sourceCodeStart":1260,"sourceCodeEnd":1296,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/src/barrier/checkpoint/control.rs#L1260-L1296","documentation":"When creating jobs contain snapshot-backfill fragments that cannot be rescheduled, any reschedule command touching those blocked job IDs is rejected at barrier time and reported as a failed start. This protects consistency of snapshot backfill, which cannot survive actor migration mid-creation.","triggerScenarios":"Issuing a reschedule (scale/adjust parallelism) while there are creating streaming jobs with unreschedulable snapshot backfill fragments, where the reschedule plan includes the blocked job IDs during handle_new_barrier.","commonSituations":"Running ALTER ... parallelism / auto-scaling while a materialized view with snapshot backfill is still being created; mixed workloads of DDL and scaling operations.","solutions":["Wait until the snapshot-backfill job finishes creating, then retry the reschedule.","Exclude the blocked job IDs (printed in the message) from the reschedule plan and reschedule only unrelated jobs.","Cancel the creating backfill job if the reschedule is urgent, reschedule, then recreate the job."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// before rescheduling, ensure no creating snapshot-backfill jobs intersect the plan\nlet creating_backfill: HashSet<_> = get_creating_jobs_with_unreschedulable_backfill().await?;\nassert!(plan.job_ids.iter().all(|j| !creating_backfill.contains(j)), \"plan touches blocked jobs\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Sequence scaling operations after DDL completes.","Exclude creating backfill jobs from reschedule plans (IDs are listed in the error).","Avoid auto-scaling windows overlapping snapshot backfill creation."],"tags":["barrier","reschedule","backfill","scaling","conflict"],"backgroundTag":"unsupported-operation","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}