diff --git a/frontend/public/locales/en/common.json b/frontend/public/locales/en/common.json
index 8ce73823bc3069b9a0d3dc4cee1b10f0614c56b1..9a60da89536295878a4374046f070533466c7cf8 100644
--- a/frontend/public/locales/en/common.json
+++ b/frontend/public/locales/en/common.json
@@ -121,7 +121,8 @@
     "phoneNumberAndCountryCode": "Both country code and phone number must be set",
     "passportNationalityAndNumber": "Both passport nationality and number need to be set",
     "doubleIdentity": "*You have input both national ID and passport. Please choose only one.",
-    "nationalIdOrPassport": "National ID or passport information need to be entered"
+    "nationalIdOrPassport": "National ID or passport information need to be entered",
+    "genderIsRequired": "Gender is required"
   },
   "button": {
     "yes": "Yes",
diff --git a/frontend/public/locales/nb/common.json b/frontend/public/locales/nb/common.json
index 204f50746421e8dc8c0b042d1017ab7f3e4224b4..75ffadd0ebcd0dc0abdeec358d48cd28bbe6dbd3 100644
--- a/frontend/public/locales/nb/common.json
+++ b/frontend/public/locales/nb/common.json
@@ -121,7 +121,8 @@
     "phoneNumberAndCountryCode": "Både landkode og telefonnummer må være satt",
     "passportNationalityAndNumber": "Både passnasjonalitet og nummer må være satt",
     "doubleIdentity": "*Du har fylt inn begge feltene over. Bruk kun ett av de.",
-    "nationalIdOrPassport": "Fødselsnummer/D-nummer eller passinformasjon må spesifiseres"
+    "nationalIdOrPassport": "Fødselsnummer/D-nummer eller passinformasjon må spesifiseres",
+    "genderIsRequired": "Kjønn er obligatorisk"
   },
   "button": {
     "yes": "Ja",
diff --git a/frontend/public/locales/nn/common.json b/frontend/public/locales/nn/common.json
index 42a7248ef2d6316f87687d951eb16ddc22c221e5..4eefad7f1e0ae51651d94f8fdca93d319b17732b 100644
--- a/frontend/public/locales/nn/common.json
+++ b/frontend/public/locales/nn/common.json
@@ -121,7 +121,8 @@
     "phoneNumberAndCountryCode": "Både landkode og telefonnummer må vere satt",
     "passportNationalityAndNumber": "Både passnasjonalitet og nummer må vere satt",
     "doubleIdentity": "*Du har fylt inn begge felta over. Bruk berre eitt av dei.",
-    "nationalIdOrPassport": "Fødselsnummer/D-nummer eller passinformasjon må spesifiserast"
+    "nationalIdOrPassport": "Fødselsnummer/D-nummer eller passinformasjon må spesifiserast",
+    "genderIsRequired": "Kjønn er obligatorisk"
   },
   "button": {
     "yes": "Ja",
diff --git a/frontend/src/routes/guest/register/steps/register.test.tsx b/frontend/src/routes/guest/register/steps/register.test.tsx
index d88a1312c7d4058017cabcf0916d9df093b5eb29..bb090e9703a07e0fbfe7e5b63ccf5caaf943d7a3 100644
--- a/frontend/src/routes/guest/register/steps/register.test.tsx
+++ b/frontend/src/routes/guest/register/steps/register.test.tsx
@@ -1,7 +1,8 @@
-import React from 'react'
 import { render, screen, waitFor } from 'test-utils'
 import AdapterDateFns from '@mui/lab/AdapterDateFns'
 import { LocalizationProvider } from '@mui/lab'
+import { addYears } from 'date-fns/fp'
+import { FeatureContext } from 'contexts'
 import GuestRegisterStep from './register'
 import { GuestRegisterData } from '../enteredGuestData'
 import AuthenticationMethod from '../authenticationMethod'
@@ -175,3 +176,115 @@ test('Identifier fields disabled and name fields enabled if invite is ID-porten'
     expect(screen.queryByTestId('passport-nationality-input')).toBeEnabled()
   })
 })
+
+test('Gender required to be set if gender field is showing', async () => {
+  const nextHandler = (registerData: GuestRegisterData) => {
+    console.log(`Entered data: ${registerData}`)
+  }
+
+  const allFeaturesOn = {
+    displayContactAtUnit: true,
+    displayComment: true,
+    displayContactAtUnitGuestInput: true,
+    showGenderFieldForGuest: true,
+  }
+
+  const formData: GuestRegisterData = {
+    firstName: 'Test',
+    lastName: 'Test2',
+    mobilePhoneCountry: 'NO',
+    mobilePhone: '97543980',
+    nationalIdNumber: '',
+    passportNumber: '12345678',
+    passportNationality: 'NO',
+    dateOfBirth: addYears(-20)(new Date()),
+    gender: null,
+  }
+
+  const testData = getEmptyGuestData()
+
+  // Need this to be able to call on the submit-method on the form
+  const reference = {
+    current: {
+      doSubmit: jest.fn(),
+    },
+  }
+
+  render(
+    <FeatureContext.Provider value={allFeaturesOn}>
+      <LocalizationProvider dateAdapter={AdapterDateFns}>
+        <GuestRegisterStep
+          nextHandler={nextHandler}
+          initialGuestData={testData}
+          registerData={formData}
+          ref={reference}
+        />
+      </LocalizationProvider>
+    </FeatureContext.Provider>
+  )
+
+  reference.current?.doSubmit()
+
+  // The validation should fail for gender since to value has been set
+  const validationMessage = await waitFor(() =>
+    screen.getByText('validation.genderIsRequired')
+  )
+  expect(validationMessage).toBeInTheDocument()
+})
+
+test('Gender not required to be set if gender field is not showing', async () => {
+  const nextHandler = (registerData: GuestRegisterData) => {
+    console.log(`Entered data: ${registerData}`)
+  }
+
+  const showGenderFieldOff = {
+    displayContactAtUnit: true,
+    displayComment: true,
+    displayContactAtUnitGuestInput: true,
+    showGenderFieldForGuest: false,
+  }
+
+  const formData: GuestRegisterData = {
+    firstName: 'Test',
+    lastName: 'Test2',
+    mobilePhoneCountry: 'NO',
+    mobilePhone: '97543980',
+    nationalIdNumber: '',
+    passportNumber: '12345678',
+    passportNationality: 'NO',
+    dateOfBirth: addYears(-20)(new Date()),
+    gender: null,
+  }
+
+  const testData = getEmptyGuestData()
+  const reference = {
+    current: {
+      doSubmit: jest.fn(),
+    },
+  }
+
+  render(
+    <FeatureContext.Provider value={showGenderFieldOff}>
+      <LocalizationProvider dateAdapter={AdapterDateFns}>
+        <GuestRegisterStep
+          nextHandler={nextHandler}
+          initialGuestData={testData}
+          registerData={formData}
+          ref={reference}
+        />
+      </LocalizationProvider>
+    </FeatureContext.Provider>
+  )
+
+  reference.current?.doSubmit()
+  await waitFor(
+    () => {
+      expect(
+        screen.queryByText('validation.genderIsRequired')
+      ).not.toBeInTheDocument()
+    },
+    {
+      timeout: 5000,
+    }
+  )
+})
diff --git a/frontend/src/routes/guest/register/steps/register.tsx b/frontend/src/routes/guest/register/steps/register.tsx
index efe84febfb08e8d81c5d371393b975d210550004..74f023966e3dc173f44307438fafbba430da553e 100644
--- a/frontend/src/routes/guest/register/steps/register.tsx
+++ b/frontend/src/routes/guest/register/steps/register.tsx
@@ -68,7 +68,7 @@ const GuestRegisterStep = forwardRef(
       string | undefined
     >(undefined)
 
-    // Set suggestion for gender field is a gender is not already given in the input
+    // Set suggestion for the gender field if gender is not already given in the input
     const [gender, setGender] = useState<string>(
       !initialGuestData.gender || !initialGuestData.gender.trim()
         ? extractGenderOrBlank(initialGuestData.fnr)
@@ -77,6 +77,7 @@ const GuestRegisterStep = forwardRef(
 
     const [idErrorState, setIdErrorState] = useState<string>('')
     const [phoneErrorState, setPhoneErrorState] = useState<string>('')
+    const [genderErrorState, setGenderErrorState] = useState<string>('')
     const { displayContactAtUnitGuestInput } = useContext(FeatureContext)
 
     console.log('register step registerData', registerData)
@@ -158,6 +159,12 @@ const GuestRegisterStep = forwardRef(
       }
       setIdErrorState('')
 
+      if (showGenderFieldForGuest && !gender) {
+        setGenderErrorState(t('validation.genderIsRequired'))
+        return
+      }
+      setGenderErrorState('')
+
       console.log('register submit errors', errors)
 
       if (!Object.keys(errors).length) {
@@ -369,31 +376,36 @@ const GuestRegisterStep = forwardRef(
               />
 
               {showGenderFieldForGuest && (
-                <Select
-                  sx={{
-                    maxHeight: '2.5rem',
-                    minWidth: '5rem',
-                    marginRight: '0.5rem',
-                  }}
-                  labelId="gender-select"
-                  id="gender-select-id"
-                  displayEmpty
-                  onChange={handleGenderChange}
-                  value={gender}
-                  renderValue={(selected: any) => {
-                    if (!selected) {
-                      return t('input.gender')
-                    }
-                    return t(`input.${selected}`)
-                  }}
-                >
-                  {/* Keep it simple and hardcode the gender values */}
-                  <MenuItem disabled value="">
-                    {t('input.gender')}
-                  </MenuItem>
-                  <MenuItem value="male">{t('input.male')}</MenuItem>
-                  <MenuItem value="female">{t('input.female')}</MenuItem>
-                </Select>
+                <>
+                  <Select
+                    sx={{
+                      maxHeight: '2.5rem',
+                      minWidth: '5rem',
+                      marginRight: '0.5rem',
+                    }}
+                    labelId="gender-select"
+                    id="gender-select-id"
+                    displayEmpty
+                    onChange={handleGenderChange}
+                    value={gender}
+                    renderValue={(selected: any) => {
+                      if (!selected) {
+                        return t('input.gender')
+                      }
+                      return t(`input.${selected}`)
+                    }}
+                  >
+                    {/* Keep it simple and hardcode the gender values */}
+                    <MenuItem disabled value="">
+                      {t('input.gender')}
+                    </MenuItem>
+                    <MenuItem value="male">{t('input.male')}</MenuItem>
+                    <MenuItem value="female">{t('input.female')}</MenuItem>
+                  </Select>
+                  {genderErrorState && (
+                    <Typography color="error">{genderErrorState}</Typography>
+                  )}
+                </>
               )}
 
               <Controller