Project Import fails due to missing projectroleid
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs 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
Summary
Symptoms
Project fails to import successfully into the application
The following appears in the atlassian-jira.log
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2013-01-01 10:00:00,000 JiraTaskExectionThread-2 WARN admin 1020x292x1 1himo28 127.0.0.1 /secure/admin/ProjectImportSelectProject.jspa [imports.project.handler.ChainedSaxHandler] Encountered a parsing exception.
com.atlassian.jira.exception.ParseException: No 'projectroleid' field for ProjectRoleActor 10104.
at com.atlassian.jira.imports.project.parser.ProjectRoleActorParserImpl.parse(ProjectRoleActorParserImpl.java:43)
at com.atlassian.jira.imports.project.handler.UserMapperHandler.handleProjectRoleActor(UserMapperHandler.java:96)
at com.atlassian.jira.imports.project.handler.UserMapperHandler.handleEntity(UserMapperHandler.java:90)
at com.atlassian.jira.imports.project.handler.ChainedSaxHandler.endTopLevelElement(ChainedSaxHandler.java:250)
at com.atlassian.jira.imports.project.handler.ChainedSaxHandler.endElement(ChainedSaxHandler.java:195)
at com.atlassian.jira.imports.project.handler.ChainedSaxHandler.endElement(ChainedSaxHandler.java:150)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.atlassian.jira.imports.xml.DefaultBackupXmlParser.parseBackupXml(DefaultBackupXmlParser.java:53)
at com.atlassian.jira.imports.project.DefaultProjectImportManager.getProjectImportData(DefaultProjectImportManager.java:292)
at com.atlassian.jira.bc.imports.project.DefaultProjectImportService.getProjectImportData(DefaultProjectImportService.java:610)
at com.atlassian.jira.web.action.admin.importer.project.ProjectImportSelectProject$MappingResultCallable.call(ProjectImportSelectProject.java:244)
at com.atlassian.jira.web.action.admin.importer.project.ProjectImportSelectProject$MappingResultCallable.call(ProjectImportSelectProject.java:222)
at com.atlassian.jira.task.TaskManagerImpl$TaskCallableDecorator.call(TaskManagerImpl.java:365)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at com.atlassian.jira.task.ForkedThreadExecutor$ForkedRunnableDecorator.run(ForkedThreadExecutor.java:249)
at java.lang.Thread.run(Thread.java:662)
Diagnosis
Run the following SQL query on the Source Instance and see if it throws any result:
1
SELECT * FROM projectroleactor WHERE projectroleid IS null;
Cause
One of the rows on ProjectRoleActor table has a null value on the projectroleid column
Solution
Resolution 1
Always back up your data before making any database modifications. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
Check if the above query throwing any result, if it does continue on the next step.
Delete the row with the null value with the following SQL command.
1
DELETE FROM projectroleactor WHERE projectroleid IS null;
Create another XML Backup.
On the Target Instance, do the Project Import again
Resolution 2
If it is not possible to do the First Resolution, it is still possible by updating the XML Backup directly.
Create a Copy of the Backup that will be edited.
Unzip the XML Backup.
Open the entities.xml.
Search for
ProjectRoleActor id
that does not haveprojectroleid
associated. For exampleProjectRoleActor id="24015"
below:1 2 3 4 5
<ProjectRoleActor id="24005" pid="12010" projectroleid="10050" roletype="atlassian-user-role-actor" roletypeparameter="pfkrt"/> <ProjectRoleActor id="24014" pid="12010" projectroleid="10014" roletype="atlassian-user-role-actor" roletypeparameter="imbo"/> <ProjectRoleActor id="24015" pid="12010" roletype="atlassian-user-role-actor" roletypeparameter="pfkrt"/> <ProjectRoleActor id="24017" pid="12010" projectroleid="10050" roletype="atlassian-user-role-actor" roletypeparameter="imbo"/> <ProjectRoleActor id="24016" pid="12010" projectroleid="10015" roletype="atlassian-user-role-actor" roletypeparameter="pfkrt"/>
Delete the whole lines.
Search for more line which have no projectroleid specified and delete it.
Save the File, compress and try to import again.
Was this helpful?