diff --git a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js
index 9adbd0e3b661..fbaab1584fc5 100644
--- a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js
+++ b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/group_selector.js
@@ -231,6 +231,7 @@ export class GroupSelector extends Component {
@@ -254,5 +255,6 @@ export class GroupSelector extends Component {
}
GroupSelector.propTypes = {
jobs: PropTypes.array.isRequired,
+ allJobIds: PropTypes.array.isRequired,
refreshJobs: PropTypes.func.isRequired,
};
diff --git a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js
index c9220ff8ced5..102544ee49f2 100644
--- a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js
+++ b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/group_selector/new_group_input/new_group_input.js
@@ -34,7 +34,16 @@ export class NewGroupInput extends Component {
changeTempNewGroup = (e) => {
const tempNewGroupName = e.target.value;
- const groupsValidationError = (tempNewGroupName === '') ? '' : validateGroupNames([tempNewGroupName]).message;
+ let groupsValidationError = '';
+
+ if (tempNewGroupName === '') {
+ groupsValidationError = '';
+ } else if (this.props.allJobIds.includes(tempNewGroupName)) {
+ groupsValidationError = 'A job with this ID already exists. Groups and jobs cannot use the same ID.';
+ } else {
+ groupsValidationError = validateGroupNames([tempNewGroupName]).message;
+ }
+
this.setState({
tempNewGroupName,
groupsValidationError,
@@ -101,4 +110,5 @@ export class NewGroupInput extends Component {
NewGroupInput.propTypes = {
addNewGroup: PropTypes.func.isRequired,
+ allJobIds: PropTypes.array.isRequired,
};
diff --git a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js
index 983815975272..ae521f1a4f9d 100644
--- a/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js
+++ b/x-pack/plugins/ml/public/jobs/jobs_list/components/multi_job_actions/multi_job_actions.js
@@ -34,6 +34,7 @@ export class MultiJobActions extends Component {
@@ -51,6 +52,7 @@ export class MultiJobActions extends Component {
}
MultiJobActions.propTypes = {
selectedJobs: PropTypes.array.isRequired,
+ allJobIds: PropTypes.array.isRequired,
showStartDatafeedModal: PropTypes.func.isRequired,
showDeleteJobModal: PropTypes.func.isRequired,
refreshJobs: PropTypes.func.isRequired,