Skip to main content
Skip table of contents

Migration Import Warnings

You may encounter the following warnings, errors or improvement suggestions after importing your configuration to Cloud, which will be underlined in the configuration import result table. These occur because some elements cannot be migrated automatically, or can be significantly improved after migration. This page contains additional explanation and solutions to these warnings.

Warnings and Errors

Warning

Description

Suggestion

Example

USER_NAME_TO_ACCOUNT_ID

The Server version of the Workflow Enhancer compares fields with user pickers to their username. The username property is not existing in the Cloud.

Rewrite the expression to map against the displayName or the accountId of the user.

  • issue.assignee?.accountId == "admin"issue.assignee?.accountId == "03ec17bf-9dcc-48a5-9eb1-4cbd739275e2"

  • issue.reporter?.accountId != /.*a.*/issue.reporter?.displayName.match('.*a.*') == null

NULL_CHECK_WITH_ORDER_OPERATOR

You used an order operator with an empty clause. In Cloud, you need to compare the empty clause with null, so this may fail.

You probably want to use != or == instead of the order operator.

  • issue.assignee?.accountId < ""issue.assignee == null

RECURSIVE_FIELD_EVALUATION

In the Server version of Workflow Enhancer, the fields wrapped in { instead of {{ are recursively evaluated. A recursive field evaluation tries to recursively determine the field to take into account by recursively parsing the field value over and over. This behavior is not supported in the Cloud part, thus, we give a RECURSIVE_FIELD_EVALUATION warning for these cases.

You can use the toggle in the migration import page to choose not showing RECURSIVE_FIELD_EVALUATION warnings, if you do not care about recursively evaluated fields. It is very unlikely that you have relied on this feature. If you have not relied on this feature, you can keep these warnings hidden.

INVALID_ARITHMETIC_OPERATION

You try to do a non-allowed arithmetic operation. For example, you may have tried to add two Date values or add a Number value and a String value.

As a fallback, we take the expression on the left of the arithmetic operation. You should check the fallback expression and fix it manually if needed.

  • issue.created + issue.duedate > 12.12.2012 12:30issue.created > 12.12.2012 12:30

  • issue.summary - 5 == "test"issue.summary == "test"

UNKNOWN_ARITHMETIC_OPERATION

You have tried to make an arithmetic operation with an element that is not known to our automatic conversion.

You have to check the element that has failed, and change it with a suitable alternative if possible.

UNKNOWN_ELEMENT

You have tried to migrate an element that is not known to our automatic conversion.

The unknown element is not converted, you have to check the Jira expression manually.

UNKNOWN_CUSTOM_FIELD

You have tried to migrate a custom field that is not known to the transpiler and is not converted.

The unknown custom field is not converted, you have to check the Jira expression manually.

CUSTOM_FIELD_ID_MAPPING

You have tried to migrate a custom field. Its id could not be mapped during the transpilation.

Check the id of this custom field on the migrated Cloud configuration, and make sure that it is mapped to that id in the Cloud.

  • Example can be found here

UNTRANSPILABLE_CUSTOM_FIELD

You have tried to migrate a custom field which representations in Server / Data Center and Cloud are completely different. It is not possible to automatically convert them.

The custom field is not converted, you have to check the expression manually.

Information and Possible Improvements

Warning

Description

Suggestion

Example

REALTIMESPAN_CONVERSION

You have used an expression that contains a real time span in Server. This has been converted to seconds in Cloud. In order to represent the time span in seconds, some extra variables are added to the front of the Jira expression in Cloud.

This is just an informational warning.

  • issue.timeSpent == 3Wissue.timeSpent == 1814400 or

  • issue.timeSpent == 3Wissue.timeSpent == 3 * WEEKS

WORKTIMESPAN_CONVERSION

You have used an expression that contains a work time span in Server. This has been converted to seconds in Cloud. In order to represent the time span in seconds, some extra variables are added to the front of the Jira expression in Cloud.

This is just an informational warning.

  • issue.timeSpent == 1d 20minissue.timeSpent == 87600 or

  • issue.timeSpent == 1d 20minissue.timeSpent == 1 * WORK_DAYS + 20 * MINUTES

LABELS_IMPROVEMENT_SUGGESTION

During the migration, a Jira expression that contains labels, which is an array of String, is converted into its own String representation.

Please consider if you can replace the String representation with a direct assertion for issue.labels.

  • ('[' + issue.labels.join(', ') + ']') == "[]"issue.labels == []

FIX_VERSIONS_IMPROVEMENT_SUGGESTION

During the migration, a Jira expression that contains fixVersions, which is an array of String, is converted into its own String representation.

Please consider if you can replace the String representation with a direct assertion for issue.fixVersions.

  • ('[' + issue.fixVersions.map(item => item.name).join(', ') + ']') == /.*4.2.5.*/issue.fixVersions.map(version => version.name).some(versionName => versionName=="4.2.5")

AFFECTS_VERSIONS_IMPROVEMENT_SUGGESTION

During the migration a Jira expression that contains versions, which is an array of String, is converted into its own String representation.

Please consider if you can replace the String representation with a direct assertion for issue.versions.

  • ('[' + issue.versions.map(item => item.name).join(', ') + ']') == "[]"issue.versions == []

COMPONENTS_IMPROVEMENT_SUGGESTION

During the migration, a Jira expression that contains components, which is an array of String, converted into its own its String representation.

Please consider if you can replace the String representation with a direct assertion for issue.components.

  • ('[' + issue.components.map(item => item.name).join(', ') + ']') == "[component]"issue.components.map(item => item.name) = ['component']

LINKED_ISSUES_IMPROVEMENT_SUGGESTION

During the migration, a Jira expression that contains links, which is an array of String, converted into its own its String representation.

Please consider if you can replace the String representation with a direct assertion for issue.links.

  • ('[' + issue.links.map(item => item.name).join(', ') + ']') == "[]"issue.links == []

GROUPS_MACRO_IMPROVEMENT_SUGGESTION

During the migration, a Jira expression that contains groups, which is an array of String, is converted into its own String representation.

Please consider if you can replace the String representation with a direct assertion for user.groups.

  • ('[' + user.groups.join(', ') + ']') == /.*groupA.*/user.groups.includes('groupA')

ROLES_MACRO_IMPROVEMENT_SUGGESTION

During the migration, a Jira expression that contains roles, which is an array of String, is converted into its own String representation.

Please consider if you can replace the String representation with a direct assertion for user.getProjectRoles(project)

  • ("[" + user.getProjectRoles(project).map(item => item.name).join(",") + "]") == "[role]"user.getProjectRoles(project).map(item => item.name) == ['role']

SUBTASKS_MACRO_IMPROVEMENT_SUGGESTION

During the migration, a Jira expression that contains subtasks, which is an array of String, is converted into its own String representation.

Please consider if you can replace the String representation with a direct assertion for issue.subtasks

  • ('[' + issue.subtasks.map(subtask => ('[' + subtask.labels.join(', ') + ']')).join(', ') + ']').match('.*label.*') != nullissue.subtasks.flatMap(item => item.labels).includes('label')

INTERPOLATION_REGEX

You have used an expression that evaluates a field value within a regex expression in Server. Thanks to the more powerful Jira expressions available in Cloud, this expression can be rewritten in a much more simple and readable way. Note that, while also supported in Cloud, field evaluation inside the .match function are vulnerable to regex injection from your users, which could lead to undesired behavior.

Please consider how you can rewrite this expression without using the .match function.

  • Checking that a single value field is included in a multi value field (eg single user picker and multi user picker)
    issue.<multi_value_field_id>.includes(issue.<single_value_field_id>)

  • Read more about writing expressions here, or about Jira expressions here.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.