Confluence site search or index returns ElasticSearch error
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
Search is broken in Confluence. When trying to search for any text in the top search field, sometimes you can see quicksearch results, but after entering the search keyword there is a stack trace.
When making the following actions...
- Type in 'test' in the top right search bar
- Hit Enter
- The following appears in the
atlassian-confluence.log
and in the page
2017-01-30 19:21:58,966 WARN [Caesium-1-4] [confluence.search.elasticsearch.ESIndexQueueFlusher] lambda$null$0 Failed to process index task ESIndexChangeTask[journalEntryId=157286,handle=com.atlassian.confluence.pages.Page-64131004]
NoNodeAvailableException[None of the configured nodes are available: []]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:280)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:197)
at org.elasticsearch.client.transport.support.TransportProxyClient.execute(TransportProxyClient.java:55)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:272)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:347)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:336)
at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:354)
at com.atlassian.confluence.search.elasticsearch.ESTenantClient.index(ESTenantClient.java:140)
at com.atlassian.confluence.search.elasticsearch.tasks.SynchronousESIndexRequestProcessor.accept(SynchronousESIndexRequestProcessor.java:41)
at com.atlassian.confluence.search.elasticsearch.tasks.RefreshPropertyEnablingRequestProcessor.accept(RefreshPropertyEnablingRequestProcessor.java:29)
at com.atlassian.confluence.search.elasticsearch.tasks.ESIndexChangeTask.innerPerform(ESIndexChangeTask.java:64)
at com.atlassian.confluence.search.elasticsearch.tasks.AbstractESTask.perform(AbstractESTask.java:70)
at com.atlassian.confluence.search.elasticsearch.ESIndexQueueFlusher$1.doInTransactionWithoutResult(ESIndexQueueFlusher.java:81)
Diagnosis
Environment
- Confluence 6 and below
Diagnostic Steps
- Go to -> General configuration -> Content indexing
- Click on 'Rebuild' and check if it completes
- Clear browser cache and clear plugin cache
Cause
ElasticSearch is enabled in Confluence, although this is an experimental feature and not supported as of Confluence 6. There is no ElasticSearch service for Confluence to communicate with, this will not work to either index or search Confluence.
Resolution
This is enabled through a dark feature. This should be removed:
- Log in as an administrator user in Confluence
- Then go to the following URL: https://your_base_url/admin/darkfeatures.action
- Under User Dark Features, look for any of the following:
es.site.search es.site.search.shadow.disabled es.site.search.odd es.reindex ...
Any feature that is enabled that starts with "es." should be removed, as these belong to the ElasticSearch experimental classes. You can then restart Confluence and rebuild the indexes from scratch, then check to see if search is working. If you continue to see an issue, open a ticket with our support teams at https://support.atlassian.com/contact.