diff --git a/dashboard/src/components/DockerRegistryDialog.vue b/dashboard/src/components/DockerRegistryDialog.vue
index 398185afd..51259a366 100644
--- a/dashboard/src/components/DockerRegistryDialog.vue
+++ b/dashboard/src/components/DockerRegistryDialog.vue
@@ -37,6 +37,7 @@ const email = ref('');
const password = ref('');
const isValid = computed(() => {
+ if (!provider.value) return false;
if (!serverAddress.value) return false;
if (!username.value) return false;
if (!password.value) return false;
@@ -52,7 +53,11 @@ async function onSubmit() {
let error;
if (registry.value) [error] = await dockerRegistriesModel.update(registry.value.id, provider.value, serverAddress.value, username.value, email.value, password.value);
else [error] = await dockerRegistriesModel.add(provider.value, serverAddress.value, username.value, email.value, password.value);
- if (error) return console.error(error);
+ if (error) {
+ busy.value = false;
+ formError.value.generic = error.body ? error.body.message : 'Internal error';
+ return console.error(error);
+ }
emit('success');
dialog.value.close();
@@ -92,6 +97,8 @@ defineExpose({