Editing and creating pages fails on Confluence due to content reconciliation errors
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
Summary
Editing and creating pages on Confluence fails. Timeout messages appear in the UI, especially while trying to publish changes.
Environment
- Confluence version 6.13+
- Collaborative Editing enabled
- Server or Data Center
Diagnosis
- Network issues ruled out, the browser can reach Synchrony or Synchrony proxy without issues
While checking the atlassian-confluence.log, messages like the following ones are observed:
WARN [http-nio-8090-exec-55] [plugins.synchrony.service.SynchronyContentService] runRecoveryInTransaction Could not reconcile content for restored. ID: 5555555 Caused by: com.atlassian.confluence.plugins.synchrony.model.SynchronyException: UNKNOWN_ERROR
Cause
The content reconciliation cannot be executed. This is one of the tasks that synchronize data between the Confluence tables (CONTENT and BODYCONTENT) and the Synchrony tables (EVENTS and SNAPSHOTS). This is needed because Confluence and Synchrony keep copies of the content independently.
Solution 1
If a single page or a small subset of them is hitting this problem, proceed as follows:
- Create a copy of the affected page
- Try to edit it
- If it is successful, archive the affected page and continue using the new one created as a copy
Copying a page creates new entries on both the Confluence and Synchrony tables. If anything was wrong with the data on the Synchrony side for the original page, it will no longer be used as new IDs are created for the copy. This is a fast and easy workaround to restore edit access to a page or a few affected pages, which is normally the case for this particular issue.
Solution 2
If several pages are affected by the same error and you are using Confluence 7+, it is possible to leverage the eviction job to clean up the Synchrony tables. Once the page is edited again, new entries will be created so the problem should no longer persist, if it was indeed caused by corruption or issues on the Synchrony side of the data. More details can be seen on this page, the hard eviction job is preferable for a deeper cleanup:
Solution 3
If you are running Confluence 6, there are no eviction jobs so cleaning the Synchrony tables needs to be done manually and should allow the content reconciliation to complete successfully again. The following how-to guide explains how to do that:
Notes
It is not yet known how this problem is triggered. Since clearing the Synchrony tables resolves it, the working theory is that some kind of corruption happens to its data. As soon as we identify the cause and how to reproduce it, a bug report will be created and added to this article.