diff --git a/app/javascript/submission_form/form.vue b/app/javascript/submission_form/form.vue
index f231e3d4..d84a9ea5 100644
--- a/app/javascript/submission_form/form.vue
+++ b/app/javascript/submission_form/form.vue
@@ -297,6 +297,7 @@
         
         
           
+          
+            {{ t('please_fill_all_required_fields') }}
+          
          
       
       
         
@@ -457,9 +464,11 @@ export default {
     return {
       isCompleted: false,
       isFormVisible: true,
+      showFillAllRequiredFields: false,
       currentStep: 0,
       isSubmitting: false,
       submittedValues: {},
+      isSecondWalkthrough: false,
       recalculateButtonDisabledKey: ''
     }
   },
@@ -514,10 +523,20 @@ export default {
     this.submittedValues = JSON.parse(JSON.stringify(this.values))
 
     if (this.goToLast) {
-      this.currentStep = Math.min(
-        this.stepFields.indexOf([...this.stepFields].reverse().find((fields) => fields.some((f) => !!this.values[f.uuid]))) + 1,
-        this.stepFields.length - 1
-      )
+      const requiredEmptyStepIndex = this.stepFields.indexOf(this.stepFields.find((fields) => fields.some((f) => f.required && !this.values[f.uuid])))
+      const lastFilledStepIndex = this.stepFields.indexOf([...this.stepFields].reverse().find((fields) => fields.some((f) => !!this.values[f.uuid]))) + 1
+
+      const indexesList = [this.stepFields.length - 1]
+
+      if (requiredEmptyStepIndex !== -1) {
+        indexesList.push(requiredEmptyStepIndex)
+      }
+
+      if (lastFilledStepIndex !== -1) {
+        indexesList.push(lastFilledStepIndex)
+      }
+
+      this.currentStep = Math.min(...indexesList)
     }
 
     if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {
@@ -608,6 +627,7 @@ export default {
     },
     goToStep (step, scrollToArea = false, clickUpload = false) {
       this.currentStep = this.stepFields.indexOf(step)
+      this.showFillAllRequiredFields = false
 
       this.$nextTick(() => {
         this.recalculateButtonDisabledKey = Math.random()
@@ -642,12 +662,13 @@ export default {
 
       stepPromise().then(async () => {
         const emptyRequiredField = this.stepFields.find((fields, index) => {
-          return index < this.currentStep && fields[0].required && (fields[0].type === 'phone' || !this.allowToSkip) && !this.submittedValues[fields[0].uuid]
+          return index < this.currentStep && fields[0].required && (fields[0].type === 'phone' || !this.allowToSkip || !this.isSecondWalkthrough) && !this.submittedValues[fields[0].uuid]
         })
 
         const formData = new FormData(this.$refs.form)
+        const isLastStep = this.currentStep === this.stepFields.length - 1
 
-        if (this.currentStep === this.stepFields.length - 1 && !emptyRequiredField) {
+        if (isLastStep && !emptyRequiredField) {
           formData.append('completed', 'true')
         }
 
@@ -662,10 +683,18 @@ export default {
 
           this.submittedValues[this.currentField.uuid] = this.values[this.currentField.uuid]
 
-          const nextStep = emptyRequiredField || this.stepFields[this.currentStep + 1]
+          if (isLastStep) {
+            this.isSecondWalkthrough = true
+          }
+
+          const nextStep = (isLastStep && emptyRequiredField) || this.stepFields[this.currentStep + 1]
 
           if (nextStep) {
             this.goToStep(nextStep, true)
+
+            if (emptyRequiredField === nextStep) {
+              this.showFillAllRequiredFields = true
+            }
           } else {
             this.isCompleted = true
           }
diff --git a/app/javascript/submission_form/i18n.js b/app/javascript/submission_form/i18n.js
index 5b57ed7b..3db20ffd 100644
--- a/app/javascript/submission_form/i18n.js
+++ b/app/javascript/submission_form/i18n.js
@@ -29,6 +29,7 @@ const en = {
   sending: 'Sending...',
   resend_code: 'Re-send code',
   verification_code_has_been_resent: 'Verification code has been re-sent via SMS',
+  please_fill_all_required_fields: 'Please fill all required fields',
   email_has_been_sent: 'Email has been sent'
 }
 
@@ -63,6 +64,7 @@ const es = {
   sending: 'Enviando...',
   resend_code: 'Reenviar código',
   verification_code_has_been_resent: 'El código de verificación ha sido reenviado por SMS',
+  please_fill_all_required_fields: 'Por favor, complete todos los campos obligatorios',
   email_has_been_sent: 'El correo electrónico ha sido enviado'
 }
 
@@ -97,6 +99,7 @@ const it = {
   sending: 'Invio in corso...',
   resend_code: 'Rinvia codice',
   verification_code_has_been_resent: 'Il codice di verifica è stato rinviato tramite SMS',
+  please_fill_all_required_fields: 'Si prega di compilare tutti i campi obbligatori',
   email_has_been_sent: "L'email è stata inviata"
 }
 
@@ -131,6 +134,7 @@ const de = {
   sending: 'Senden...',
   resend_code: 'Code erneut senden',
   verification_code_has_been_resent: 'Die Verifizierungscode wurde erneut per SMS gesendet',
+  please_fill_all_required_fields: 'Bitte füllen Sie alle erforderlichen Felder aus',
   email_has_been_sent: 'Die E-Mail wurde gesendet'
 }
 
@@ -165,6 +169,7 @@ const fr = {
   sending: 'Envoi en cours...',
   resend_code: 'Renvoyer le code',
   verification_code_has_been_resent: 'Le code de vérification a été renvoyé par SMS',
+  please_fill_all_required_fields: 'Veuillez remplir tous les champs obligatoires',
   email_has_been_sent: "L'email a été envoyé"
 }
 
@@ -199,6 +204,7 @@ const pl = {
   sending: 'Wysyłanie...',
   resend_code: 'Ponownie wyślij kod',
   verification_code_has_been_resent: 'Kod weryfikacyjny został ponownie wysłany',
+  please_fill_all_required_fields: 'Proszę wypełnić wszystkie wymagane pola',
   email_has_been_sent: 'E-mail został wysłany'
 }
 
@@ -233,6 +239,7 @@ const uk = {
   sending: 'Надсилаю...',
   resend_code: 'Повторно відправити код',
   verification_code_has_been_resent: 'Код підтвердження був повторно надісланий',
+  please_fill_all_required_fields: "Будь ласка, заповніть всі обов'язкові поля",
   email_has_been_sent: 'Електронний лист був відправлений'
 }
 
@@ -267,6 +274,7 @@ const cs = {
   sending: 'Odesílání...',
   resend_code: 'Znovu odeslat kód',
   verification_code_has_been_resent: 'Ověřovací kód byl znovu odeslán',
+  please_fill_all_required_fields: 'Prosím vyplňte všechny povinné položky',
   email_has_been_sent: 'E-mail byl odeslán'
 }
 
@@ -301,6 +309,7 @@ const pt = {
   sending: 'Enviando...',
   resend_code: 'Reenviar código',
   verification_code_has_been_resent: 'O código de verificação foi reenviado via SMS',
+  please_fill_all_required_fields: 'Por favor, preencha todos os campos obrigatórios',
   email_has_been_sent: 'Email enviado'
 }