Page appears blank after adding the Widget Connector macro.
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
After inserting the Widget Connector Macro , the preview works fine but after adding it to the page, it shows as a blank page and nothing appears after saving the page.
Diagnosis
- In the application log, the below stack trace is seen.
2023-04-12 09:01:54,347 ERROR [http-nio-8090-exec-3] [rest.api.model.ExceptionConverter] convertServiceException No status code found for exception, converting to internal server error :
-- referer: https://dev.confluence.us-east-1.opse.c1.vanguard.com/pages/editpage.action?pageId=697106446 | url: /rest/tinymce/1/macro/placeholder | traceId: 075c70b257ab121e | userName: UX159986
java.lang.RuntimeException: com.atlassian.confluence.content.render.xhtml.XhtmlTimeoutException: Rendering this content exceeded the timeout of 5 seconds.
at com.atlassian.confluence.tinymceplugin.rest.MacroResource.generatePlaceHolder(MacroResource.java:178)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Caused by: com.atlassian.confluence.content.render.xhtml.XhtmlTimeoutException: Rendering this content exceeded the timeout of 5 seconds.
at com.atlassian.confluence.content.render.xhtml.XhtmlTimeoutException.createForTimeout(XhtmlTimeoutException.java:33)
at com.atlassian.confluence.content.render.xhtml.XhtmlTimeoutException.forTimeout(XhtmlTimeoutException.java:24)
- Please run the following command on the Confluence server, preferably with the same account that starts the application. You need to use the exact URL which you are trying to configure in the Widget connector. If you see any failure, kindly check with your network team if there are any rules in the environment that could block such requests. Only the URL which is accessible from the server can be displayed in Widget Connector.
wget -p https://www.youtube.com
- Check the diagnostic steps proposed in the following articles:
Probable Cause
This issue can happen due to multiple reasons which can be blocking the URL to be previewed, please refer to the solution section for more details.
Probable Solutions
Below are various solutions which worked in similar cases. These solutions can be checked one by one.
- First, try to make sure that Confluence is trusting the URL. Below are the steps to be performed. For example, Youtube:
- Please navigate to the Confluence Allow list page.
- Then please add https://www.youtube.com/ into the Allow list with Expression types - Domain name.
- Save the changes and please then replicate the issue again.
- Try to add two backslashes at the end of the youtube link as shown below (This solution has worked in the past for a few other customers)
- Try to increase the below timeout value.
Always take a backup of your Confluence home and installation directories. Edit the <installation-directory>/bin/setenv.sh ( to extend timeout to 30s):
CATALINA_OPTS="-Dconfluence.macro.placeholder.timeoutMillis=<value> ${CATALINA_OPTS}"
Time should be provided in millisecond equivalent of seconds for example to use the 30s value parameter should have the following form:
- CATALINA_OPTS="-Dconfluence.macro.placeholder.timeoutMillis=30000${CATALINA_OPTS}"
Restart Confluence so the value takes effect and then check by adding youtube links, Test it with multiple youtube links.
- If the above step doesn't resolve the issue, let's temporarily setup reverse proxy bypass according to How to bypass a reverse proxy or SSL in Application Links to eliminate reverse-proxy configuration from the list of possible root-causes
- Then Change configuration in Confluence home > General Configuration > Server Base URL to reflect bypass proxy like this http://<ip>:<port>
- Stop Confluence, clean plugins cache, and start Confluence.
- After this, you can test the issue on http://<ip>:<port> without a proxy. Please test changes first on a test environment before applying them to Production.
- Another thing we can do to isolate (or potentially work around) the issue is to use iFrame to embed the video and see if it works. For that, we need to follow the below steps.
- Go to Confluence > Choose > Manage Apps
- Select All Apps from the drop-down list
- Search for HTML macros
- Expand Confluence HTML Macros
- You should see 2 of 7 modules enabled, click on it and hover at the Disable button for html (html-xhtml)
- Click Enable
- Create an empty page
- Add an "HTML" macro
Insert the following iframe code into the macro and save the page.
<iframe width="420" height="315" src="https://www.youtube.com/embed/Hd0JflMdqyM" frameborder="0" allowfullscreen></iframe>
HTML macros are disabled by default.
The HTML macro will only be available if it has been enabled by an administrator. Enabling these macros can make your Confluence site vulnerable to cross-site scripting attacks.