Reverse Proxy intercepting errors can cause the Confluence Page Creation action to freeze
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
When attempting to create a new Confluence page, the page editor freezes:
- if there is a Reverse Proxy configured to intercept errors
- and when Collaborative Editing is switched ON.
Such an error message can be seen from page editor:
"Something went wrong after loading the editor. Copy your unsaved changes and refresh the page to keep editing."
Environment
- Confluence version 7.9.0 with Collaborative Editing turned ON
- NGINX is used as a Reverse Proxy and it is intercepting errors for Confluence and Synchrony, with such directives:
# Server Section in nginx.conf for the Confluence and Synchrony sites
server {
[...]
error_page 404 /404.html;
proxy_intercept_errors on;
[...]
}
Diagnosis
- Check the Reverse Proxy configuration details for Confluence and Synchrony to confirm the directives used.
Cause
After hitting the Create button in Confluence, such a trace can be seen in the logs:
INFO [async-dispatch-5] [synchrony.middleware.logging] {:request {:remote-addr "127.0.0.1", :uri "/synchrony/v1/data/Synchrony-92cb3632-7851-314b-9957-47c5a6223ec9/confluence-851970", :request-method :post, :query-string "state-at=@head&state-format=type-tagged&rewrite-request=true&cached=true", "x-forwarded-for" "127.0.0.1"}, :response {:status 404}}
Intercepting this 404 can cause the Confluence application to detect that its Synchrony component is unresponsive and freeze.
Solution
- Remove the lines below from the Reverse Proxy Configuration for Confluence and Synchrony sections.
error_page 404 /404.html;
proxy_intercept_errors on;
We do have an existing improvement request for Confluence to handle such situation gracefully under - CONFSERVER-55946Getting issue details... STATUS