Model Migration Error

Hi There,

I’m trying to migrate A12 models from 2023.06-ext7 to 2024.06-ext2 and I have a form-model that can’t be migrated due to the following error:

[2024-11-22 18:01:51.629] [error] [Form Migration Tool] Failed to migrate Contract_form. Error: Model Contract_form is not a valid form model or can not be validated. The field/object at path "/content/screens/0/screenElements/5/screenElements/0" must NOT have additional properties

The mentioned part in the form-model is the following control-grid:

{
                "type": "ControlGrid",
                "id": "controlgrid_58208",
                "name": "OfferRequest",
                "layout": {
                  "lg": "3-3-3-3"
                },
                "row": [
                  {
                    "type": "Row",
                    "id": "row_706b0",
                    "title": {
                      "type": "Multilingual",
                      "multilingualText": {
                        "text": [
                          {
                            "locale": "en",
                            "text": "Offer requested by"
                          },
                          {
                            "locale": "de",
                            "text": "Anfrage erstellt von"
                          }
                        ]
                      }
                    },
                    "cell": [
                      {
                        "type": "ExpressionCell",
                        "id": "expressioncell_2b713",
                        "name": "OfferRequestSentBy",
                        "expression": "kontext(Contract){\n    kontext(OfferData){\n        kontext(OfferRequestInformation){\n            kontext(OfferRequestedBy){\n                [FirstName]\" \"[LastName]\n            }\n        }\n    }\n}",
                        "label": {
                          "type": "Multilingual",
                          "multilingualText": {
                            "text": [
                              {
                                "locale": "en",
                                "text": "Name"
                              },
                              {
                                "locale": "de",
                                "text": "Name"
                              }
                            ]
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "id": "control_ee2f7",
                        "readonly": true,
                        "elementRef": "include_c503e_field_09bed"
                      }
                    ]
                  },
                  {
                    "type": "MultiColumnSection",
                    "id": "multicolumnsection_9efdf",
                    "name": "PremiumType"
                  },
                  {
                    "type": "Row",
                    "id": "row_d90ba",
                    "title": {
                      "type": "Multilingual",
                      "multilingualText": {
                        "text": [
                          {
                            "locale": "en",
                            "text": "Request sent to"
                          },
                          {
                            "locale": "de",
                            "text": "Angebotsanfrage verschickt an"
                          }
                        ]
                      }
                    },
                    "cell": [
                      {
                        "type": "ExpressionCell",
                        "id": "expressioncell_61189",
                        "name": "OfferRequestSentTo",
                        "expression": "kontext(Contract){\n    kontext(OfferData){\n        kontext(OfferRequestInformation){\n            kontext(RequestRecipient){\n                [RecipientFirstName]\" \"[RecipientLastName]\n            }\n        }\n    }\n}",
                        "label": {
                          "type": "Multilingual",
                          "multilingualText": {
                            "text": [
                              {
                                "locale": "en",
                                "text": "Name"
                              },
                              {
                                "locale": "de",
                                "text": "Name"
                              }
                            ]
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "id": "control_62bcc",
                        "elementRef": "include_c503e_field_c002f"
                      },
                      {
                        "type": "Control",
                        "id": "control_c02f0",
                        "elementRef": "include_c503e_field_9ef60"
                      }
                    ]
                  },
                  {
                    "type": "Row",
                    "id": "row_2e827",
                    "cell": [
                      {
                        "type": "Control",
                        "id": "control_0a3b2",
                        "span": {
                          "lg": 3
                        },
                        "autoExpand": true,
                        "elementRef": "include_c503e_field_03270"
                      }
                    ]
                  }
                ]
              }

Can anyone find out what the not-allowed “additional properties” are?

Thank you very much! :slight_smile:

Hi @bianca-firm-knoll,

There appears to be a MultiColumn Section ("id": "multicolumnsection_9efdf") nested in the list of rows for this control grid. If I’m reading the json correctly, this could be your problem as Multi Column Sections may only be nested within Screens or Sections. See here.

Thank you, @malcolm-silver-ice!
I will try to move it out (and figure out how it got there in the first place) :wink:
(but it will take some days to get back to you or rather to discourse)