diff --git a/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts b/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts
index 8ba31e2037fb82d5335bcfb39c1c0656ff5239d2..a777fd637e6994f35d9b13f2a85b113f0074c787 100644
--- a/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts
@@ -25,6 +25,7 @@ import { AbstractControl, FormControl, FormGroup, UntypedFormControl, UntypedFor
 import { createInvalidParam, createIssue } from '../../../test/error';
 import { InvalidParam, Issue } from '../tech.model';
 import {
+  getControlForInvalidParam,
   getControlForIssue,
   getMessageForInvalidParam,
   getMessageForIssue,
@@ -143,17 +144,7 @@ describe('ValidationUtils', () => {
     });
   });
 
-  describe('getMessageForInvalidParam', () => {
-    it('should return message', () => {
-      const invalidParam: InvalidParam = createInvalidParam();
-
-      const msg: string = getMessageForInvalidParam(invalidParam);
-
-      expect(msg).toEqual(`Bitte ${invalidParam.name} ausfüllen`);
-    });
-  });
-
-  describe('setInvalidParamValidationError', () => {
+  describe('invalid param', () => {
     const formPrefixes = ['', 'some-prefix'];
     const fieldNames = ['baseField1', 'baseField2', 'subGroup.subGroupField1'];
     const prefixNameCombinations = formPrefixes.flatMap((prefix) =>
@@ -165,31 +156,46 @@ describe('ValidationUtils', () => {
       'with prefix "%s" and fieldName "%s"',
       (prefix, fieldName) => {
         let invalidParam: InvalidParam;
-        let invalidParamWithoutPrefix: InvalidParam;
 
         beforeEach(() => {
           form.reset();
-          invalidParamWithoutPrefix = createInvalidParam();
-          invalidParamWithoutPrefix.name = fieldName;
           invalidParam = {
-            reason: invalidParamWithoutPrefix.reason,
+            ...createInvalidParam(),
             name: prefix.length ? `${prefix}.${fieldName}` : fieldName,
           };
         });
 
-        it('should assign invalidParam to form control error without prefix', () => {
-          const message = getMessageForInvalidParam(invalidParamWithoutPrefix);
+        describe('get message for invalid param', () => {
+          it('should return', () => {
+            const msg: string = getMessageForInvalidParam(invalidParam, prefix);
+
+            expect(msg).toEqual(`Bitte ${fieldName} ausfüllen`);
+          });
+        });
 
-          setInvalidParamValidationError(form, invalidParam, prefix);
+        describe('get control for invalid param', () => {
+          it('should find', () => {
+            const control: AbstractControl = getControlForInvalidParam(form, invalidParam, prefix);
 
-          const errorMessage = form.getError(invalidParam.reason, fieldName);
-          expect(errorMessage).toBe(message);
+            expect(control).toBeTruthy();
+          });
         });
 
-        it('should mark form as touched', () => {
-          setInvalidParamValidationError(form, invalidParam, prefix);
+        describe('set invalid param validation error', () => {
+          it('should assign invalidParam to form control error without prefix', () => {
+            const message = getMessageForInvalidParam(invalidParam, prefix);
+
+            setInvalidParamValidationError(form, invalidParam, prefix);
 
-          expect(form.touched).toBeTruthy();
+            const errorMessage = form.getError(invalidParam.reason, fieldName);
+            expect(errorMessage).toBe(message);
+          });
+
+          it('should mark form as touched', () => {
+            setInvalidParamValidationError(form, invalidParam, prefix);
+
+            expect(form.touched).toBeTruthy();
+          });
         });
       },
     );
@@ -211,6 +217,16 @@ describe('ValidationUtils', () => {
           invalidParam.name = paramPrefix.length > 0 ? `${paramPrefix}.${fieldName}` : fieldName;
         });
 
+        it('should not find form control', () => {
+          const control: AbstractControl = getControlForInvalidParam(
+            form,
+            invalidParam,
+            pathPrefix,
+          );
+
+          expect(control).toBeFalsy();
+        });
+
         it('should not assign to field control error', () => {
           setInvalidParamValidationError(form, invalidParam, pathPrefix);
 
@@ -225,15 +241,5 @@ describe('ValidationUtils', () => {
         });
       },
     );
-
-    it('should not assign invalidParam with incorrect prefix', () => {
-      const invalidParam: InvalidParam = createInvalidParam();
-      invalidParam.name = `correct-prefix.baseField1`;
-
-      setInvalidParamValidationError(form, invalidParam, 'incorrect-prefix');
-
-      const errorMessage = form.getError(invalidParam.reason, unknownName);
-      expect(errorMessage).toBeFalsy();
-    });
   });
 });
diff --git a/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.ts b/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.ts
index b61f1b1059b1324d1f60d357b68f5e767f859427..a42904b4cc50a322b0345f71df54f4c7824da733 100644
--- a/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.ts
+++ b/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.ts
@@ -47,7 +47,7 @@ export function getControlForIssue(
   issue: Issue,
   pathPrefix?: string,
 ): AbstractControl {
-  const fieldPath: string = pathPrefix ? issue.field.substring(pathPrefix.length + 1) : issue.field;
+  const fieldPath: string = getFieldPathWithoutPrefix(issue.field, pathPrefix);
 
   let curControl: AbstractControl = form;
   fieldPath
@@ -85,20 +85,31 @@ export function setInvalidParamValidationError(
   invalidParam: InvalidParam,
   pathPrefix: string = '',
 ): void {
-  const item: InvalidParam = mapInvalidParamWithoutPrefix(invalidParam, pathPrefix);
-  const formControl: AbstractControl = form.get(item.name);
-  if (isNotNil(formControl)) {
-    formControl.setErrors({ [item.reason]: getMessageForInvalidParam(item) });
-    formControl.markAsTouched();
+  const control: AbstractControl = getControlForInvalidParam(form, invalidParam, pathPrefix);
+  if (isNotNil(control)) {
+    control.setErrors({
+      [invalidParam.reason]: getMessageForInvalidParam(invalidParam, pathPrefix),
+    });
+    control.markAsTouched();
   }
 }
 
-function mapInvalidParamWithoutPrefix(item: InvalidParam, pathPrefix: string): InvalidParam {
-  return pathPrefix.length > 0 ?
-      { ...item, name: item.name.substring(pathPrefix.length + 1) }
-    : item;
+function getFieldPathWithoutPrefix(name: string, pathPrefix: string): string {
+  return pathPrefix.length > 0 ? name.substring(pathPrefix.length + 1) : name;
 }
 
-export function getMessageForInvalidParam(item: InvalidParam): string {
-  return replacePlaceholder(VALIDATION_MESSAGES[item.reason], 'field', item.name);
+export function getControlForInvalidParam(
+  form: UntypedFormGroup,
+  invalidParam: InvalidParam,
+  pathPrefix: string = '',
+): AbstractControl {
+  return form.get(getFieldPathWithoutPrefix(invalidParam.name, pathPrefix));
+}
+
+export function getMessageForInvalidParam(item: InvalidParam, pathPrefix: string): string {
+  return replacePlaceholder(
+    VALIDATION_MESSAGES[item.reason],
+    'field',
+    getFieldPathWithoutPrefix(item.name, pathPrefix),
+  );
 }