Insert Button Disabled when Trying to Insert an External Gadget in Confluence
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles 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
Symptoms
The insert button in the Macro Browser is disabled during the gadget configuration and preview from an external gadget.
Cause
- This issue is commonly a result of a misconfiguration in Trusted Applications settings in the destination application. For the purposes of this article, we'll use JIRA as an example. The
IP Address Matches
Field must contain all IPs (internal and external) for the systems involved in the transmission of requests between the JIRA and Confluence servers. This includes any proxies that the requests my be passed through, either for URL rewrites or to move past firewalls, as well as the Confluence server's IP. - This issue can also occur when users access the instance using a URL that does not match the Base URL for Confluence instance due to the same origin policy, which prevents the Javascript on the page from executing because the URLs for the JS are generated based off of the Base URL configured in your Confluence Admin >> General Configuration and require an exact match to the accessor's URL.
Resolution
- Add any additional IPs for these other systems to the
IP Address Matches
field in JIRA's Trusted Applications settings. - Ensure your users are accessing Confluence using the FQDN of the server if that is what was configured as the Server Base URL in your General Configuration, even if they are accessing it on your internal network and can simply specify a subdomain or hostname.