### 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/test/java/org/elasticsearch/xpack/esql/analysis/AnalyzerTests.java
public void testDateParseOnIntPattern() {
        verifyUnsupported("""
            from test
            | eval date_parse(int, keyword)
            """, "first argument of [date_parse(int, keyword)] must be [string], found value [int] type [integer]");
    }
    public void testDateTruncOnInt() {
        verifyUnsupported("""
            from test
            | eval date_trunc("1M", int)
            """, "first argument of [date_trunc(\"1M\", int)] must be [datetime], found value [int] type [integer]");
    }
    public void testDateTruncOnFloat() {
        verifyUnsupported("""
            from test
            | eval date_trunc("1M", float)
            """, "first argument of [date_trunc(\"1M\", float)] must be [datetime], found value [float] type [double]");
    }
    public void testDateTruncOnText() {
        verifyUnsupported("""
            from test
            | eval date_trunc("1M", keyword)
            """, "first argument of [date_trunc(\"1M\", keyword)] must be [datetime], found value [keyword] type [keyword]");
    }
    public void testDateTruncWithNumericInterval() {
        verifyUnsupported("""
            from test
            | eval date_trunc(1, date)
            """, "second argument of [date_trunc(1, date)] must be [dateperiod or timeduration], found value [1] type [integer]");
    }