Cannot edit page or create page while collaborative mode is on and Confluence has Context Path
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
Users are no longer able to edit a page or create a page while the collaborative mode is ON and Confluence has a Context path. The following error messages may appear in a pop-up error dialog:
Also, while checking the HAR file we could see 404 for /synchrony-proxy.
Diagnosis
According to the "Possible Confluence and Synchrony Configurations," Confluence offers two methods for Synchrony configuration: "With Reverse Proxy" and "Without Reverse Proxy." In the case of the "With Reverse Proxy" configuration, users may face connectivity issues with /Synchrony if the reverse proxy setup lacks the necessary Synchrony settings (e.g., Nginx, Apache, Haproxy, etc.). In such instances, Confluence utilizes a fallback method, allowing users to connect to Synchrony through the Confluence internal proxy accessed via the "/Synchrony-proxy" path. This alternative approach should function effectively in all scenarios.
However, if Confluence incorporates a context path, the Synchrony external URL must account for the Confluence context path. Failure to reach the correct path will result in a "404 Page Not Found" error. To diagnose the problem and confirm successful Synchrony connection through Confluence, users should run the provided URL within the same browser session where they have already logged in, ensuring user authentication is preserved.
https://<Confluence-Base-URL-With-ContextPath>/synchrony-proxy/heartbeat
If the above URL returns a 404 error, it indicates a problem with the Confluence configuration or a missing context path. This issue is likely the cause of the 404 error for the Confluence Synchrony internal proxy.
Solution
If the following URL https://<Confluence-Base-URL-With-ContextPath>/synchrony-proxy/heartbeat is giving a 404 then we could check the following properties to make sure everything is configured properly and nothing is missing.
Check the /Synchrony-proxy context path in the server.xml file and make sure it is present.
<Context path="${confluence.context.path}/synchrony-proxy" docBase="../synchrony-proxy" reloadable="false" useHttpOnly="true"> <Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" threshold="60"/> </Context>
The following JVM property should be present in the setenv.sh file.
CATALINA_OPTS="-Dconfluence.context.path=${CONFLUENCE_CONTEXT_PATH} ${CATALINA_OPTS}"
Check the following property is correctly configured with the correct context path in the confluence.cfg.xml file.
<property name="confluence.webapp.context.path">
Last check the following properties are present in the setenv.sh file
CONFLUENCE_CONTEXT_PATH=`$JRE_HOME/bin/java -jar $CATALINA_HOME/bin/confluence-context-path-extractor.jar $CATALINA_HOME` export CONFLUENCE_CONTEXT_PATH