diff --git a/arkindex_worker/worker/metadata.py b/arkindex_worker/worker/metadata.py
index 990f6e904768deab115d4d7f749deffec1bdff74..7676e71c20c44c41db85b81f8e057f1a9c77bd1d 100644
--- a/arkindex_worker/worker/metadata.py
+++ b/arkindex_worker/worker/metadata.py
@@ -129,28 +129,27 @@ class MetaDataMixin(object):
             metadata_list, list
         ), "type shouldn't be null and should be of type list of MetaDataBulkItem"
 
-        assert (
-            len(metadata_list) >= 3
-        ), "The metadata_list does not contain the correct amount of data"
-
-        type = metadata_list[0]
-        name = metadata_list[1]
-        value = metadata_list[2]
-        assert type and isinstance(
-            type, MetaType
-        ), "name shouldn't be null and should be of type MetaType"
-        assert name and isinstance(
-            name, str
-        ), "name shouldn't be null and should be of type str"
-        assert (
-            value and isinstance(value, str) or value and isinstance(value, float)
-        ), "value shouldn't be null and should be of type str or float"
-
-        if len(metadata_list) > 3:
-            entity_id = metadata_list[3]
+        for index, metadata in enumerate(metadata_list):
+            assert isinstance(
+                metadata, dict
+            ), f"Element at index {index} in metadata_list: Should be of type dict"
+
+            type = metadata.get("type")
+            name = metadata.get("name")
+            value = metadata.get("value")
+            entity_id = metadata.get("entity_id")
+            assert type and isinstance(
+                type, MetaType
+            ), f"Element at index {index} in metadata_list: type shouldn't be null and should be of type MetaType"
+            assert name and isinstance(
+                name, str
+            ), f"Element at index {index} in metadata_list: name shouldn't be null and should be of type str"
+            assert (
+                value and isinstance(value, str) or value and isinstance(value, float)
+            ), f"Element at index {index} in metadata_list: value shouldn't be null and should be of type str or number"
             assert entity_id is None or isinstance(
                 entity_id, str
-            ), "entity_id should be None or a str"
+            ), f"Element at index {index} in metadata_list: entity_id should be None or a str"
 
         metadatabulk = self.request(
             "CreateMetaDataBulk",
diff --git a/tests/test_elements_worker/test_metadata.py b/tests/test_elements_worker/test_metadata.py
index fb45f968ac484fd56680192ae0eeae6b7eccc4f3..f44bfa631160c825fc5c261972e55d4715578e3b 100644
--- a/tests/test_elements_worker/test_metadata.py
+++ b/tests/test_elements_worker/test_metadata.py
@@ -201,11 +201,47 @@ def test_create_metadata(responses, mock_elements_worker):
 @pytest.mark.parametrize(
     "metadatas",
     [
-        ([MetaType("text"), "fake_name", "fake_value"]),
-        ([MetaType("text"), "fake_name", "fake_value", "fake_entity_id"]),
-        ([MetaType("text"), "fake_name", "fake_value", None]),
-        ([MetaType("text"), "fake_name", 13.5, None]),
-        ([MetaType("text"), "fake_name", 13.5, "fake_entity_id"]),
+        ([{"type": MetaType("text"), "name": "fake_name", "value": "fake_value"}]),
+        (
+            [
+                {
+                    "type": MetaType("text"),
+                    "name": "fake_name",
+                    "value": "fake_value",
+                    "entity_id": "fake_entity_id",
+                }
+            ]
+        ),
+        (
+            [
+                {
+                    "type": MetaType("text"),
+                    "name": "fake_name",
+                    "value": "fake_value",
+                    "entity_id": None,
+                }
+            ]
+        ),
+        (
+            [
+                {
+                    "type": MetaType("text"),
+                    "name": "fake_name",
+                    "value": 13.5,
+                    "entity_id": None,
+                }
+            ]
+        ),
+        (
+            [
+                {
+                    "type": MetaType("text"),
+                    "name": "fake_name",
+                    "value": 13.5,
+                    "entity_id": "fake_entity_id",
+                }
+            ]
+        ),
     ],
 )
 def test_create_metadatas(fake_dummy_worker, metadatas):