Unable to edit due to confluenceADFMigrationUnsupportedContentInternalExtension error

Platform Notice: Cloud - This article applies to Atlassian products on the cloud platform.

Summary

When editing a page using the new editor, users can observe that some macros show the error message confluenceADFMigrationUnsupportedContentInternalExtension, blocking the edition. 

Environment

Confluence Cloud 
Pages migrated from Confluence On-Prem and using the new Editor.

Diagnosis

Reviewing the Page Source, we can observe:

  • Nested Macros structure: Excerpt > Expand > Section > Columns > Filter by Label;
  • Using deprecated macros Section and Columns.

Cause

Unsupported macro

This error message confluenceADFMigrationUnsupportedContentInternalExtension is presented when a non-supported macro is used on the new Editor. Some macros were intentionally excluded from the new editor and will be deprecated from the legacy editor soon: Learn which macros are being removed.

One example of a deprecated macro is the Section and the related Column macros, mentioned in this document Insert the section macro. The overall recommendation is to replace them with the Layouts Columns.

A second problem: Nested macros

  • However, this was not the unique required change. On Confluence Cloud, there is a limitation when using nested macros (one macro inside the other), explained on this feature request: Nest Expand or other Bodied Macros in another Macro;
  • Our Development team has been working to add this feature. Some options (panels, lists, actions, quotes) were recently released and mentioned in this community article Content nesting enhancements in Confluence Cloud that we will release soon nested expands.

Solution

1. Convert the page to the old Editor (legacy) to be able to edit the page - Reference: REST/API method Update content property:

1.1 Get the Editor properties for the page

curl sample to get the Editor properties
### The next lines should be edited to your execution
# Replace the content of these variables
USER_NAME=replacewithyouremail                                 ### Replace with an user able to edit the page
USER_PASSWORD=replacewithyourAPIToken                          ### Replace with the API Token from this user
CONFLUENCE_BASEURL=https://xxxxx.atlassian.net/wiki            ### Confluence Cloud and context path without the trailing slash
CONTENT_ID=183894515                                           ### Content ID from the URL 

curl --request GET \
--url ${CONFLUENCE_BASEURL}'/rest/api/content/'${CONTENT_ID}'/property/editor' \
 --user ${USER_NAME}:${USER_PASSWORD} \
 --header 'Accept: application/json'
 


1.2 Identify the version used

 Observe the returned JSON, it will show the latest version on the number attribute of the Editor properties. For the sample below, the last version was 5, so the new version will be 6.

{
  "id":"183894517",
  "key":"editor",
  "value":"v2",
  "version":{
     "by":{
        "type":"user","operations":null,"isExternalCollaborator":false,"accountId":"999999999999999999999","accountType":"","publicName":"Unknown user","externalCollaborator":false},
        "when":"2024-04-02T13:44:29.246Z","message":"","number":5,"minorEdit":false,"contentTypeModified":false
     },
     "_expandable":{"content":"/rest/api/content/183894515"
  },
  "_links":{"self":"https://xxxxx.atlassian.net/wiki/rest/api/content/183894515/property/editor","base":"https://xxxxx.atlassian.net/wiki","context":"/wiki"}
}

 Note: Nothing will be returned if there are no Property changes for the key "Editor". 


1.3 Add a new property for the Editor using the new version (last version + 1)

curl sample to add a new Editor property
  • Edit the script below and fill in the required variables (email address, API Token, content ID, new version)
  • Change the permission of the script to allow execution (chmod)
  • The script below will add a new Editor entry using the old Editor (v1):
    ./curl_putEditor.sh


### The next lines should be edited to your execution
# Replace the content of these variables
USER_NAME=replacewithyouremail                                  ### Replace with an user able to edit the page
USER_PASSWORD=replacewithyourAPIToken                           ### Replace with the API Token from this user
CONFLUENCE_BASEURL=https://xxxxx.atlassian.net/wiki             ### Confluence Cloud and context path without the trailing slash
CONTENT_ID=183894515                                            ### Content ID from the URL 
NEW_VERSION_NUMBER=6                                            ### Add 1 to the last version created for this property

#################################################################################################################
### Do not change the next lines
### This REST/API will add a new version of this page using the old editor 

curl -v --request PUT \
  --url ${CONFLUENCE_BASEURL}'/rest/api/content/'${CONTENT_ID}'/property/editor' \
  --user ${USER_NAME}:${USER_PASSWORD} \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data @/dev/stdin<<EOF
{
  "value": [
    "v1"
  ],
  "version": {
    "number": ${NEW_VERSION_NUMBER},
    "minorEdit": true
  }
}

2. Edit the page using the old editor 

  • Move the content out of the Section/Columns macro and delete the unsupported macros from the page;
  • The new editor does not support the nested macros Excerpt > Expand yet, showing the warning at the bottom "Some page elements aren't supported in the new editor":

  • Move the content of the Expand macro out of the Excerpt to resolve the warning;
  • Once resolved, the page will show a recommendation to convert the page to the new Editor;
  • Hitting the conversion link will convert the page back to the new editor.


3. Adjust the layout of the page

  • Use the Layout to create columns  and move the content to the desired columns, achieving the same format used before by the macros Section and Columns;
  • There are some limitations when using nested macros Excerpt and Expand:
    • Layout > Expand 
    • Layout > Excerpt 
    • Layout > Excerpt > Expand  
    • Layout > Expand > Insert Excerpt 
  • As a workaround, it is possible to use the Include macro, separating only what would be the excerpt content to a separate page:
    • This page contains the content, already formatted using Layout > Expand macro. 

    • It will be embedded on another page using the Include Macro, inside the layout column:


  • Or separate the content from the macros into another page, keeping the layout > expand > Insert Excert format:
    • This page contains only the content


    • It will be embedded on another page using the Insert Excerpt Macro, inside the layout column > Expand macro:


Last modified on Apr 17, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.