diff --git a/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx b/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx index 300627247d..f8a1950490 100644 --- a/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx +++ b/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx @@ -13,6 +13,13 @@ function ProjectAdd() { if (values.scm_type === 'manual') { values.scm_type = ''; } + if (!values.credential) { + // Depending on the permissions of the user submitting the form, + // the API might throw an unexpected error if our creation request + // has a zero-length string as its credential field. As a work-around, + // normalize falsey credential fields by deleting them. + delete values.credential; + } setFormSubmitError(null); try { const { diff --git a/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx b/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx index bde5500cb6..94fcaf3edc 100644 --- a/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx +++ b/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx @@ -13,6 +13,13 @@ function ProjectEdit({ project }) { if (values.scm_type === 'manual') { values.scm_type = ''; } + if (!values.credential) { + // Depending on the permissions of the user submitting the form, + // the API might throw an unexpected error if our creation request + // has a zero-length string as its credential field. As a work-around, + // normalize falsey credential fields by deleting them. + delete values.credential; + } try { const { data: { id },