Skip to content

ESQL: TO_STRING failing with a null pointer exception #111912

@nik9000

Description

@nik9000

Description

I'm seeing a failure of TO_STRING with a NullPointerException with an error like:

dns.Ext.options:  {"error":{"root_cause":[{"type":"null_pointer_exception","reason":"Cannot invoke \"org.elasticsearch.xpack.esql.expression.function.scalar.convert.AbstractConvertFunction.toEvaluator(java.util.function.Function)\" because \"convertFunction\" is null","stack_trace":"org.elasticsearch.ElasticsearchException$1: Cannot invoke \"org.elasticsearch.xpack.esql.expression.function.scalar.convert.AbstractConvertFunction.toEvaluator(java.util.function.Function)\" because \"convertFunction\" is null\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:704)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:632)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.rest.RestResponse.build(RestResponse.java:186)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:145)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:116)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.rest.action.RestActionListener.onFailure(RestActionListener.java:53)\n\tat org.elasticsearch.xpack.esql.action.EsqlResponseListener.lambda$wrapWithLogging$1(EsqlResponseListener.java:173)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListener$2.onFailure(ActionListener.java:257)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.rest.action.RestCancellableNodeClient$1.onFailure(RestCancellableNodeClient.java:96)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.tasks.TaskManager$1.onFailure(TaskManager.java:214)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:31)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations$RunBeforeActionListener.onFailure(ActionListenerImplementations.java:317)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:31)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.support.ContextPreservingActionListener.onFailure(ContextPreservingActionListener.java:39)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:31)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)\n\tat org.elasticsearch.server@8.15.0/org.elasticsearch.action.DelegatingActionListener.onFailure
...
caused by java.lang.NullPointerException: Cannot invoke \"org.elasticsearch.xpack.esql.expression.function.scalar.convert.AbstractConvertFunction.toEvaluator(java.util.function.Function)\" because \"convertFunction\" is null\n\tat org.elasticsearch.xpack.esql.planner.EsPhysicalOperationProviders$TypeConvertingBlockLoader.<init>(EsPhysicalOperationProviders.java:376)\n\tat org.elasticsearch.xpack.esql.planner.EsPhysicalOperationProviders.getBlockLoaderFor(EsPhysicalOperationProviders.java:140)\n\tat org.elasticsearch.xpack.esql.planner.EsPhysicalOperationProviders.lambda$fieldExtractPhysicalOperation$1(EsPhysicalOperationProviders.java:122)\n\tat org.elasticsearch.compute.lucene.ValuesSourceReaderOperator$FieldWork.newShard(ValuesSourceReaderOperator.java:470)\n\tat org.elasticsearch.compute.lucene.ValuesSourceReaderOperator.

https://github.com/elastic/elasticsearch/blob/8.15/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/planner/EsPhysicalOperationProviders.java#L376

https://github.com/elastic/elasticsearch/blob/8.15/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/planner/EsPhysicalOperationProviders.java#L140

My kind of wild guess here is that the index didn't have the field mapped at all.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions