diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py
index 425afc068794ce3ff2565377f4988be992c2e2c1..f778ca10096137be07f6cd0895b0ef60e58207d7 100644
--- a/gso/workflows/iptrunk/create_iptrunk.py
+++ b/gso/workflows/iptrunk/create_iptrunk.py
@@ -3,7 +3,7 @@ from uuid import uuid4
 from orchestrator.db.models import ProductTable, SubscriptionTable
 # noinspection PyProtectedMember
 from orchestrator.forms import FormPage
-from orchestrator.forms.validators import Choice
+from orchestrator.forms.validators import Choice, UniqueConstrainedList
 from orchestrator.targets import Target
 from orchestrator.types import FormGenerator, State
 from orchestrator.types import SubscriptionLifecycle, UUIDstr
@@ -52,6 +52,10 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
 
     initial_user_input = yield CreateIptrunkForm
 
+    class AeMembersList(UniqueConstrainedList[str]):
+        min_items = initial_user_input.iptrunk_minimum_links
+        max_items = initial_user_input.iptrunk_minimum_links
+
     DeviceEnumA = Choice('Device A', zip(devices.keys(), devices.items()))
 
     class CreateIptrunkSideAForm(FormPage):
@@ -61,8 +65,8 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
         iptrunk_sideA_node_id: DeviceEnumA
         iptrunk_sideA_ae_iface: str
         iptrunk_sideA_ae_geant_a_sid: str
-        iptrunk_sideA_ae_members: list[str]
-        iptrunk_sideA_ae_members_descriptions: list[str]
+        iptrunk_sideA_ae_members: AeMembersList
+        iptrunk_sideA_ae_members_descriptions: AeMembersList
 
     user_input_side_a = yield CreateIptrunkSideAForm
 
@@ -77,8 +81,8 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
         iptrunk_sideB_node_id: DeviceEnumB
         iptrunk_sideB_ae_iface: str
         iptrunk_sideB_ae_geant_a_sid: str
-        iptrunk_sideB_ae_members: list[str]
-        iptrunk_sideB_ae_members_descriptions: list[str]
+        iptrunk_sideB_ae_members: AeMembersList
+        iptrunk_sideB_ae_members_descriptions: AeMembersList
 
     user_input_side_b = yield CreateIptrunkSideBForm