Site Content Indexing page stuck on "In Progress" or "Propagating index" status after triggering a reindex task in Confluence Data Center

Platform Notice: Data Center Only - This article only applies to Atlassian apps on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. 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

Summary

After triggering a site reindex the UI gets stuck on "In Progress" and never finishes.

While "In Progress" it's not possible to trigger another reindex.

(Auto-migrated image: description temporarily unavailable)

.

Cause

This issue appears to happen when there is some inconsistency in the reindex.status field in the database (BANDANA or PLUGIN_SETTING table, depending on Confluence versions).

The status inconsistency can be caused by many factors, for example:

  • When restoring the database from another cluster, or;

  • When there is an issue propagating the index snapshot;

Diagnosis

✔️ Entries on the reindex starting and finishing up can be seen in the atlassian-confluence-index.log

2024-06-19 21:56:00,108 INFO [Indexer: 1] [confluence.internal.index.ConcurrentBatchIndexer] logProgress Re-index progress: 100% complete. 3198700 items have been reindexed 2024-06-19 21:56:00,109 INFO [lucene-interactive-reindexing-thread] [confluence.internal.index.ConcurrentBatchIndexer] index Shutting down indexing thread pool 2024-06-19 21:56:00,109 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] lambda$reIndex$7 full reindex group 1/1 completed for USER_ONLY, 100% complete 2024-06-19 21:56:00,109 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] lambda$reIndex$7 full reindex completed for USER_ONLY, 100% complete, start cleaning up files 2024-06-19 21:56:00,109 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] lambda$reIndex$7 Post-optimizing indices... 2024-06-19 21:56:01,538 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] lambda$reIndex$7 full reindex cleanup completed for USER_ONLY 2024-06-19 21:56:01,555 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] lambda$setJournalsLatestEntries$10 main_index storage was set to the latest entry 49746351 2024-06-19 21:56:01,555 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] lambda$setJournalsLatestEntries$10 edge_index storage was set to the latest entry 49743405 2024-06-19 21:56:01,555 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] lambda$setJournalsLatestEntries$10 change_index storage was set to the latest entry 49746346 2024-06-19 21:56:01,555 INFO [lucene-interactive-reindexing-thread] [internal.index.lucene.LuceneReIndexer] reIndex Indexing completed for stage USER_ONLY 2024-06-19 21:56:09,901 INFO [Caesium-1-1] [index.lucene.snapshot.DefaultLuceneIndexSnapshotManager] create Creating a new snapshot for index main_index 2024-06-19 22:12:07,083 INFO [Caesium-1-1] [index.lucene.snapshot.DefaultLuceneIndexSnapshotManager] create A new snapshot has been created for index main_index with journalEntryId of 49746352 2024-06-19 22:12:07,755 INFO [Caesium-1-1] [index.lucene.snapshot.DefaultLuceneIndexSnapshotManager] create Creating a new snapshot for index change_index 2024-06-19 22:13:02,388 INFO [Caesium-1-1] [index.lucene.snapshot.DefaultLuceneIndexSnapshotManager] create A new snapshot has been created for index change_index with journalEntryId of 49746353

✔️ An entry on the Index snapshot being created and propagated to all nodes can be then seen on the atlassian-confluence.log file

2024-06-19 22:13:12,371 INFO [Caesium-1-3] [impl.system.runner.RestoreIndexSnapshotMaintenanceTaskRunner] doRestore Restoring index snapshots 2024-06-19 22:15:25,949 INFO [Caesium-1-3] [impl.system.runner.RestoreIndexSnapshotMaintenanceTaskRunner] doRestore Index snapshot IndexSnapshot[JournalId=main_index, JournalEntryId=49746352] has been restored 2024-06-19 22:15:35,037 INFO [Caesium-1-3] [impl.system.runner.RestoreIndexSnapshotMaintenanceTaskRunner] doRestore Index snapshot IndexSnapshot[JournalId=change_index, JournalEntryId=49746353] has been restored 2024-06-19 22:15:35,037 INFO [Caesium-1-3] [impl.system.runner.RestoreIndexSnapshotMaintenanceTaskRunner] doRestore All index snapshots have been restored successfully

Even though the logs show that the reindexing process has finished, whether successfully or not, the reindex status is still showing "In Progress" in the UI.

To query the status of the reindex at the database level, we can run the query below in the database:

Confluence 10.2.11 and before:

select bandanavalue from bandana where bandanakey = 'reindex.status';

Confluence 10.2.13 and after:

select SETTING_VALUE from PLUGIN_SETTING where SETTING_KEY ='reindex.status';

The example below shows the reindex status being stuck on UNAVAILABLE/PROPAGATING on a few nodes, which the logs show as not being the case. This leads the UI to get stuck on the "In Progress." status

Output example

bandanavalue "<com.atlassian.confluence.index.status.ReIndexJob> <id>32dds343-5472-sds3-8ad2-3423423423de</id> <startTime>2024-06-19T17:39:42.983770Z</startTime> <stage>PROPAGATING</stage> <acknowledged>false</acknowledged> <rebuildingProgress> <total>3198697</total> <processed>3198697</processed> </rebuildingProgress> <lastRebuildingUpdate>2024-06-19T21:56:01.406481Z</lastRebuildingUpdate> <nodeStatuses class=""list""> <com.atlassian.confluence.index.status.ReIndexNodeStatus> <nodeId>...</nodeId> <state>UNAVAILABLE</state> <error>UNAVAILABLE</error> <progress> <total>0</total> <processed>0</processed> </progress> </com.atlassian.confluence.index.status.ReIndexNodeStatus> ... <com.atlassian.confluence.index.status.ReIndexNodeStatus> <nodeId>...</nodeId> <state>PROPAGATING</state> <progress> <total>0</total> <processed>0</processed> </progress> </com.atlassian.confluence.index.status.ReIndexNodeStatus> ... <com.atlassian.confluence.index.status.ReIndexNodeStatus> <nodeId>...</nodeId> <state>PROPAGATING</state> <progress> <total>0</total> <processed>0</processed> </progress> </com.atlassian.confluence.index.status.ReIndexNodeStatus> </nodeStatuses> <createdBy class=""com.atlassian.confluence.user.ConfluenceUserImpl""> ... </createdBy> <spaceKeys/> </com.atlassian.confluence.index.status.ReIndexJob>"

Solution

Before proceeding, confirm no reindex is currently active by checking atlassian-confluence-index.log or Check <base_url>/json/reindextaskprogress.action URL for JSON progressf or recent 'Re-index progress' entries.

To have the UI status information reflecting the correct reindexing status, it'll be necessary to delete the reindex.status value from the database table, as per the steps below:

Warning: Backup your database before proceeding.

Before running any SQL in this article, create a full backup of your Confluence database. This is a database-level operation with no undo other than restoring from backup. Only proceed if you're comfortable running SQL directly against the Confluence database, and test on a staging or cloned environment first, wherever possible.

  • Stop Confluence.

  • Delete the status from the database depending on the version of Confluence.

    • Confluence 10.2.11 and before:

      DELETE FROM BANDANA WHERE BANDANAKEY='reindex.status';
    • Confluence 10.2.13 and after:

      DELETE FROM PLUGIN_SETTING WHERE SETTING_KEY ='reindex.status';
  • Start Confluence.

  • Start a new reindex if needed.

Verification

After clearing the stuck status:

  • Restart Confluence and confirm the Site Content Indexing page is no longer stuck

  • Trigger a fresh reindex and verify it completes

  • Check atlassian-confluence-index.log for clean reindex start/finish entries

  • Verify search results return expected content

When this won't help

This article does not cover:

  • Reindex failures that show explicit error messages (those have different root causes)

  • Index corruption — see the rebuild from snapshot KB

Related articles

Updated on July 31, 2026

Still need help?

The Atlassian Community is here for you.