### Elasticsearch Version

8.11.0

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

MacOS

### Problem Description

When sending a ESQL query with the `enrich` command that involves a policy that does not existing a `NullPointerException` is thrown and shown as error messages to the user:

Query:
```
row a  = 1| enrich missing-policy
```

Returns:
```
null_pointer_exception - Cannot invoke "org.elasticsearch.xpack.core.enrich.EnrichPolicy.getMatchField()" because "policy" is null
```

### Steps to Reproduce

See above.

### Logs (if relevant)

_No response_
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/analysis/Analyzer.java
if (right.dataType() == DATETIME) {
                    if (left.dataType() == KEYWORD && left.foldable()) {
                        left = stringToDate(left);
                        modified = true;
                    }
                }
            }
            return modified ? cmp.replaceChildren(List.of(left, right)) : cmp;
        }
        private static Expression stringToDate(Expression stringExpression) {
            var str = stringExpression.fold().toString();
            Long millis = null;
            
            try {
                millis = str == null ? null : DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.parseMillis(str);
            } catch (Exception ex) { 
            }
            var source = stringExpression.source();
            Expression result;
            if (millis == null) {
                var errorMessage = format(null, "Invalid date [{}]", str);
                result = new UnresolvedAttribute(source, source.text(), null, errorMessage);
            } else {
                result = new Literal(source, millis, DATETIME);
            }
            return result;
        }
    }
}