diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py
index 66ea016b818f6f2c0a0a03797db7aa22848dfeb8..fec4c34ff8042c894366f71949f61662e643bf82 100644
--- a/src/caosadvancedtools/models/parser.py
+++ b/src/caosadvancedtools/models/parser.py
@@ -650,6 +650,10 @@ class JsonSchemaParser(Parser):
         force_list = False
         if name in self.model:
             return self.model[name], force_list
+        if "type" not in elt:
+            # Each element must have a specific type
+            raise JsonSchemaDefinitionError(
+                f"`type` is missing in element {name}.")
         if "enum" in elt:
             ent = self._treat_enum(elt, name)
         elif elt["type"] in JSON_SCHEMA_ATOMIC_TYPES:
diff --git a/unittests/test_json_schema_model_parser.py b/unittests/test_json_schema_model_parser.py
index 359f3c6a31b81fbbcfcdc834fe7784ce02b5387e..4b44f6efa1cda19c04ee13a6a50b04cefbff9177 100644
--- a/unittests/test_json_schema_model_parser.py
+++ b/unittests/test_json_schema_model_parser.py
@@ -140,7 +140,8 @@ def test_missing_property_type():
         parse_model_from_json_schema(
             os.path.join(FILEPATH,
                          "datamodel_missing_property_type.schema.json"))
-    assert "FIXME" in str(err.value)
+    assert "`type` is missing" in str(err.value)
+
 
 def test_enum():
     """Enums are represented in references to records of a specific type."""