diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py index 87140b02b1..a1279a9119 100644 --- a/awx/api/views/__init__.py +++ b/awx/api/views/__init__.py @@ -3154,8 +3154,11 @@ class WorkflowJobRelaunch(WorkflowsEnforcementMixin, GenericAPIView): def post(self, request, *args, **kwargs): obj = self.get_object() - if obj.is_sliced_job and not obj.job_template_id: - raise ParseError(_('Cannot relaunch slice workflow job orphaned from job template.')) + if obj.is_sliced_job: + if not obj.job_template_id: + raise ParseError(_('Cannot relaunch slice workflow job orphaned from job template.')) + elif obj.job_template.job_slice_count != obj.workflow_nodes.count(): + raise ParseError(_('Cannot relaunch sliced workflow job after slice count has changed.')) new_workflow_job = obj.create_relaunch_workflow_job() new_workflow_job.signal_start()