Ignore_malformed not working when date is incorrect format

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
OS version 2.15.0

I have set up a template which contains dates. I have some dates that are not in the correct format (old test data), in my template this particular section looks like this:

"match_data_dates": {
    "path_match": "siteData.*",
    "match_mapping_type": "date",
    "mapping": {
        "ignore_malformed": true,
        "index": false,
        "type": "date"
        }
}

Sometimes I the test data is fine to be written to the index, however periodically we get the error

index returned 400 _index: <index_name> _type:  _id: <id number> _version: 0 error: Type: illegal_argument_exception Reason: "mapper [data.dateField] cannot be changed from type [date] to [text]"

suggesting that it is not following the spec of the template that has been declared with ignore_malformed: true property. Has anyone seen this behavior before or know how to get around this issue?