```
show functions | keep description, *on | mv_expand description
```

```
{
    "error": {
        "root_cause": [
            {
                "type": "unresolved_exception",
                "reason": "Invalid call to dataType on an unresolved object ?description"
            }
        ],
        "type": "unresolved_exception",
        "reason": "Invalid call to dataType on an unresolved object ?description"
    },
    "status": 500
}
```

```
org.elasticsearch.xpack.ql.capabilities.UnresolvedException: Invalid call to dataType on an unresolved object ?description
        at org.elasticsearch.xpack.ql.expression.UnresolvedAttribute.dataType(UnresolvedAttribute.java:90)
        at org.elasticsearch.xpack.esql.analysis.Analyzer$ResolveRefs.resolveMvExpand(Analyzer.java:350)
        at org.elasticsearch.xpack.esql.analysis.Analyzer$ResolveRefs.doRule(Analyzer.java:334)
        at org.elasticsearch.xpack.ql.analyzer.AnalyzerRules$BaseAnalyzerRule.rule(AnalyzerRules.java:120)
        at org.elasticsearch.xpack.ql.analyzer.AnalyzerRules$AnalyzerRule.lambda$apply$0(AnalyzerRules.java:85)
```

It should throw a VerificationException and propagate the unresolved attribute message instead
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/analysis/Analyzer.java
policy
                );
            return new Enrich(plan.source(), plan.child(), policyNameExp, matchField, policyRes, enrichFields);
        }
        private String unresolvedPolicyError(String policyName, EnrichResolution enrichResolution) {
            List<String> potentialMatches = StringUtils.findSimilar(policyName, enrichResolution.existingPolicies());
            String msg = "unresolved enrich policy [" + policyName + "]";
            if (CollectionUtils.isEmpty(potentialMatches) == false) {
                msg += ", did you mean "
                    + (potentialMatches.size() == 1 ? "[" + potentialMatches.get(0) + "]" : "any of " + potentialMatches)
                    + "?";
            }
            return msg;
        }
        public static List<NamedExpression> calculateEnrichFields(
            Source source,
            String policyName,
            List<Attribute> mapping,
            List<NamedExpression> enrichFields,
            EnrichPolicy policy
        ) {
            Set<String> policyEnrichFieldSet = new HashSet<>(policy.getEnrichFields());
            Map<String, Attribute> fieldMap = mapping.stream()
                .filter(e -> policyEnrichFieldSet.contains(e.name()))
                .collect(Collectors.toMap(NamedExpression::name, Function.identity()));
            List<NamedExpression> result = new ArrayList<>();
            if (enrichFields == null || enrichFields.isEmpty()) {
                
                for (String enrichFieldName : policy.getEnrichFields()) {
                    result.add(createEnrichFieldExpression(source, policyName, fieldMap, enrichFieldName));