As of 8.9.0, a bug was introduced to the enrich policy execution code that does not allow policy execution to complete successfully if an enrich policy's `enrich_fields` contains a reference to a field in the source index that is a type that does not support [disabling indexing](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-index.html). The most common example of this kind of bug is to reference an object field, which does not support the `index: false` mapping parameter:

```
// Index with object in it
PUT jamestest-enrich-object/_doc/1
{
  "key": "1",
  "info": {
    "firstname": "James",
    "lastname": "Baiera"
  }
}

// An enrich index that references the object field in its enrich_fields property
PUT _enrich/policy/jamestest-enrich-object
{
  "match": {
    "indices": "jamestest-enrich-object",
    "match_field": "key",
    "enrich_fields": ["info"]
  }
}
```

The policy will be created, but any attempts to execute the policy will be met with the following error message:
```
{
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "Mapping definition for [info] has unsupported parameters:  [index : false]"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "Failed to parse mapping: Mapping definition for [info] has unsupported parameters:  [index : false]",
    "caused_by": {
      "type": "mapper_parsing_exception",
      "reason": "Mapping definition for [info] has unsupported parameters:  [index : false]"
    }
  },
  "status": 400
}
```

This occurs for fields other than `object` type fields. Any fields from a source index that do not support the `index` parameter such as `binary` or `histogram` will not complete the enrich execution as described above.

This bug seems to have been introduced in 8.9.0 via https://github.com/elastic/elasticsearch/pull/96056.

Workarounds:
A work around for this issue when working with object fields is to update enrich policies to reference each desired field from an object by their full name. For instance, the above example with a firstname and lastname field would need to be referenced as such:

```
PUT _enrich/policy/jamestest-enrich-object-children
{
  "match": {
    "indices": "jamestest-enrich-object",
    "match_field": "key",
    "enrich_fields": ["info.firstname", "info.lastname"]
  }
}
```

Unfortunately, no workaround exists for enrich policies that make use of fields like `binary` or `histogram` which do not support the [`index` mapping parameter](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-index.html).
x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/EnrichPolicyRunner.java
return null;
                }
            }
            currentField = extractValues(currentProperties, fieldPart);
            if (currentField == null) {
                if (fieldRequired) {
                    throw new ElasticsearchException(
                        "Could not traverse mapping to field [{}]. Could not find the [{}] field under [{}]",
                        fieldName,
                        fieldPart,
                        onRoot ? "root" : parent.toString()
                    );
                } else {
                    return null;
                }
            }
            if (onRoot) {
                onRoot = false;
            } else {
                parent.append(".");
            }
            parent.append(fieldPart);
        }
        if (currentField == null) {
            return null;
        }
        final String type = (String) currentField.getOrDefault("type", "object");
        final String format = (String) currentField.get("format");
        return new MappingTypeAndFormat(type, format);
    }