Wildcard in fdiscovery filter, null_pointer_exception

Opensearch v 3.1.0, browser Chrome 138.0.7204.97

In version 3.x of Opensearch, when using a filter based on wildcards in discovery, the search ends with the error “Internal Server Error, null_pointer_exception” Moreover, filters with a regular expression continue to work normally.
In version 2.x, the wildcard worked normally. Tell me where to look to see what broke?
Filter:

{
  "query": {
    "wildcard": {
      "cs_uri_stem": {
        "value": "*mapi*",
        "case_insensitive": true
      }
    }
  }
}

Error:

null_pointer_exception
Cannot invoke “org.apache.lucene.util.automaton.ByteRunAutomaton.step(int, int)” because “runAutomaton” is null
fetchResponse@https://my.opensearch/8487/bundles/core/core.entry.js:15:419574

@urfin73 I’m not able to reproduce this. Can you please elaborate if this is something you can reproduce from devTools or only using discovery. Can you provide a sample document maybe? Are you seeing the error only on UI or also in the logs?

Error in opensearch.log:

Error

[2025-07-07T15:05:17,212][WARN ][r.suppressed ] [elk-test] path: /exch_iis-/_search, params: {ignore_unavailable=true, preference=1751889875945, index=exch_iis-, timeout=30000ms, track_total_hits=true}
org.opensearch.action.search.SearchPhaseExecutionException: all shards failed
at org.opensearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:775) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:395) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:815) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:548) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:316) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.search.SearchExecutionStatsCollector.onFailure(SearchExecutionStatsCollector.java:104) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:75) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:760) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.transport.TransportService$9.handleException(TransportService.java:1719) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.security.transport.SecurityInterceptor$RestoringTransportResponseHandler.handleException(SecurityInterceptor.java:393) ~[?:?]
at org.opensearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1505) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1619) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1593) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:81) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:75) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:70) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.ActionRunnable.onFailure(ActionRunnable.java:104) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:54) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.threadpool.TaskAwareRunnable.doRun(TaskAwareRunnable.java:78) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:59) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:975) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-3.1.0.jar:3.1.0]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: org.opensearch.OpenSearchException$3: Cannot invoke “org.apache.lucene.util.automaton.ByteRunAutomaton.step(int, int)” because “runAutomaton” is null
at org.opensearch.OpenSearchException.guessRootCauses(OpenSearchException.java:716) ~[opensearch-core-3.1.0.jar:3.1.0]
at org.opensearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:393) ~[opensearch-3.1.0.jar:3.1.0]
… 24 more
Caused by: java.lang.NullPointerException: Cannot invoke “org.apache.lucene.util.automaton.ByteRunAutomaton.step(int, int)” because “runAutomaton” is null
at org.apache.lucene.search.uhighlight.LabelledCharArrayMatcher.lambda$wrap$0(LabelledCharArrayMatcher.java:63) ~[lucene-highlighter-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.search.uhighlight.LabelledCharArrayMatcher$1.match(LabelledCharArrayMatcher.java:46) ~[lucene-highlighter-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.search.uhighlight.MemoryIndexOffsetStrategy$1.accept(MemoryIndexOffsetStrategy.java:132) ~[lucene-highlighter-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.analysis.FilteringTokenFilter.incrementToken(FilteringTokenFilter.java:52) ~[lucene-core-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.index.memory.MemoryIndex.storeTerms(MemoryIndex.java:953) ~[lucene-memory-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.index.memory.MemoryIndex.addField(MemoryIndex.java:696) ~[lucene-memory-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.index.memory.MemoryIndex.addField(MemoryIndex.java:676) ~[lucene-memory-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.index.memory.MemoryIndex.addField(MemoryIndex.java:660) ~[lucene-memory-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.search.uhighlight.MemoryIndexOffsetStrategy.getOffsetsEnum(MemoryIndexOffsetStrategy.java:112) ~[lucene-highlighter-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.apache.lucene.search.uhighlight.FieldHighlighter.highlightFieldForDoc(FieldHighlighter.java:83) ~[lucene-highlighter-10.2.1.jar:10.2.1 1b2451b5f435ad2c41a8b6b0f0d6a59b24ff9ad2 - 2025-04-25 16:50:53]
at org.opensearch.lucene.search.uhighlight.CustomFieldHighlighter.highlightFieldForDoc(CustomFieldHighlighter.java:94) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.lucene.search.uhighlight.CustomUnifiedHighlighter.highlightField(CustomUnifiedHighlighter.java:179) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.search.fetch.subphase.highlight.UnifiedHighlighter.highlight(UnifiedHighlighter.java:113) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.search.fetch.subphase.highlight.HighlightPhase$1.process(HighlightPhase.java:98) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.search.fetch.FetchPhase.execute(FetchPhase.java:178) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.search.SearchService.executeFetchPhase(SearchService.java:758) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.search.SearchService.executeQueryPhase(SearchService.java:730) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.search.SearchService$2.lambda$onResponse$0(SearchService.java:692) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:74) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.action.ActionRunnable$2.doRun(ActionRunnable.java:89) ~[opensearch-3.1.0.jar:3.1.0]
at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-3.1.0.jar:3.1.0]
… 8 more

In DevTools query works fine.

GET /exch_iis-2024.12.log/_search
{
  "track_total_hits": 10,
   "query": {
    "wildcard": {
      "cs_uri_stem": {
        "value": "*rpc*",
        "case_insensitive": true
      }
    }
  }
}

Response:

{
  "took": 33,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 10,
      "relation": "gte"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "exch_iis-2024.12.log",
        "_id": "sc2er5MB-oW29xxkIOBR",
        "_score": 1,
        "_source": {
          "ecs": {
            "version": "8.0.0"
          },