We couldn't import Portlet Configuration error in project migration

Platform Notice: Cloud and Data Center - This article applies equally to both cloud 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

Learn what to do when your project migration with the Jira Cloud Migration Assistant (JCMA) fails with this error "We couldn't import Portlet Configuration".

Overview

When migrating projects using the JCMA, the following error messages can be seen in the migration or application logs:

1 2 3 ERROR <project_key> project-import We couldn't import Portlet Configuration stats-gadget because of 1 missing dependencies: Filter <filter_id>. ERROR <project_key> project-import We couldn't import Portlet Configuration greenhopper-sprint-burndown because of 1 missing dependencies: Board <board_id>. ERROR <project_key> project-import We couldn't import Portlet Configuration filter-results-gadget because of 2 missing dependencies: Custom Field '<Name>', Custom Field '<name>'.

The error message indicates that the gadgets migration failed due to missing dependencies. Gadgets are entities that can embed other entities, like boards, filters, and custom fields.

It's necessary that the embedded entities are successfully migrated for the gadget to also be migrated.

Despite the error, the Dashboard will most likely be migrated, but broken.

Solution

  1. Identify the affected Dashboard with the queries in the next section.

  2. Fix the dependencies in the Dashboards by either:

    • Substituting the entity listed as a missing dependency by valid entities.

    • Removing the entity listed as a missing dependency.

Alternatively, you can manually update the Dashboard in the cloud instance after the migration.

Identify the affected board

Make sure to replace the "<ID>" in the last line of the queries with the appropriate entity ID.

Missing dependency filter

PostgreSQL

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'filterId' AND CAST(gp.userprefvalue AS INTEGER) IN (<ID>, <ID>, <ID>);

MySQL

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'filterId' AND CAST(gp.userprefvalue AS DECIMAL) IN (<ID>, <ID>, <ID>);

Oracle

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'filterId' AND TO_NUMBER(TO_CHAR(gp.userprefvalue)) IN (<ID>, <ID>, <ID>);

MSSQL Server

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'filterId' AND CONVERT(VARCHAR, gp.userprefvalue) IN (<ID>, <ID>, <ID>);

Missing dependency board

PostgreSQL

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'rapidViewId' AND CAST(gp.userprefvalue AS INTEGER) IN (<ID>, <ID>, <ID>)

MySQL

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'rapidViewId' AND CAST(gp.userprefvalue AS DECIMAL) IN (<ID1>, <ID>, <ID>)

Oracle

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'rapidViewId' AND TO_NUMBER(TO_CHAR(gp.userprefvalue)) IN (<ID>, <ID>, <ID>)

MSSQL Server

1 2 3 4 5 6 7 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'rapidViewId' AND CONVERT(VARCHAR, gp.userprefvalue) IN (<ID>, <ID>, <ID>)

Missing dependency custom field

1 2 3 4 5 6 7 8 SELECT pp.id , pp.pagename FROM portalpage pp JOIN portletconfiguration pc ON pc.portalpage = pp.id JOIN gadgetuserpreference gp ON gp.portletconfiguration = pc.id WHERE gp.userprefkey = 'columnNames' AND gp.userprefvalue LIKE '%customfield_<ID>%' OR gp.userprefvalue LIKE '%customfield_<ID>%'
Updated on April 17, 2025

Still need help?

The Atlassian Community is here for you.