Can not set epic links with Jira REST API. We are using REST API to integrate 2 Jira instances and I can not figure out a way to set epic links.

      Here are the problems:
      1) When using POST /rest/api/2/issue/12345 to set epic link, it only works when there is no previous epic set. So it only works when setting the epic for the first time. Using this to move issues between epics fails. (Internal Server Error 500 is returned)
      2) Agile API POST /rest/agile/1.0/epic/521/issue does not seem to work. I only get 404
      3) Also any oldschool greenhopper API-s that can be used to set epic link dont work. Also 404

      Please help, this is major annoyance, we have over 50 issues at the moment that are not syncing, because epic link has changed. This would take significant amount of time to fix manually and the problem is growing every day. I would very much prefer if you would just allow us to set epic link using /rest/api/2/issue/12345. Why is this not allowed?

            [JSWSERVER-13156] Cannot set Epic link using Jira REST API

            While this issue is listed as resolved in 7.1.0. In version 7.1.2, I am receiving a "500 Internal server error" when attempting to set the Epic link while creating an issue via the REST API.

            REST call
            POST: http://.../issues/rest/api/2/issue
            json body just contains just the required fields and the epic link

            {
                "fields": {
                   "project":
                   { 
                      "key": "MYPROJ"
                   },
                   "summary": "test issue create",
                   "description": "test issue create",
                   "issuetype": {
                      "name": "MyIssueType"
                   },
                  "customfield_11913": "EPIC-123"
               }
            }
            

            Stack dump in the log

            2016-06-03 14:35:26,403 http-nio-8080-exec-6 ERROR pjwiley 875x3695442x1 18yl0iz 131.198.88.104,198.151.224.69 /rest/api/2/issue [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response
            java.lang.reflect.InvocationTargetException
            	at sun.reflect.GeneratedMethodAccessor4392.invoke(Unknown Source)
            	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            	at java.lang.reflect.Method.invoke(Method.java:498)
            	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:192)
            	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83)
            	... 3 filtered
            	at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55)
            	... 1 filtered
            	at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39)
            	... 14 filtered
            	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)
            	... 1 filtered
            	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)
            	... 86 filtered
            	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)
            	... 15 filtered
            	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
            	... 27 filtered
            	at com.adaptavist.orientdb.OrientShutdownFilter.doFilter(OrientShutdownFilter.java:29)
            	... 50 filtered
            	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            	at java.lang.Thread.run(Thread.java:745)
            Caused by: java.lang.NullPointerException
            	at com.atlassian.greenhopper.service.issuelink.EpicServiceImpl.addIssuesToEpic(EpicServiceImpl.java:90)
            	at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.update(EpicLinkRestFieldOperationsHandler.java:104)
            	at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.handleOperation(EpicLinkRestFieldOperationsHandler.java:76)
            	at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.updateIssueInputParameters(EpicLinkRestFieldOperationsHandler.java:64)
            	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:428)
            	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler.makeCreateAssembler(IssueInputParametersAssembler.java:131)
            	at com.atlassian.jira.rest.v2.issue.CreateIssueResource.createIssue(CreateIssueResource.java:49)
            	at com.atlassian.jira.rest.v2.issue.IssueResource.createIssue(IssueResource.java:596)
            	... 213 more
            2016-06-03 14:35:27,834 http-nio-8080-exec-83 ERROR pjwiley 875x3695486x2 1gv3xan 131.198.88.104,198.151.224.69 /rest/api/2/issue [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response
            java.lang.reflect.InvocationTargetException
            	at sun.reflect.GeneratedMethodAccessor4392.invoke(Unknown Source)
            	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            	at java.lang.reflect.Method.invoke(Method.java:498)
            	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:192)
            	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83)
            	... 3 filtered
            	at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55)
            	... 1 filtered
            	at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39)
            	... 14 filtered
            	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)
            	... 1 filtered
            	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)
            	... 86 filtered
            	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)
            	... 15 filtered
            	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
            	... 27 filtered
            	at com.adaptavist.orientdb.OrientShutdownFilter.doFilter(OrientShutdownFilter.java:29)
            	... 50 filtered
            	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            	at java.lang.Thread.run(Thread.java:745)
            Caused by: java.lang.NullPointerException
            	at com.atlassian.greenhopper.service.issuelink.EpicServiceImpl.addIssuesToEpic(EpicServiceImpl.java:90)
            	at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.update(EpicLinkRestFieldOperationsHandler.java:104)
            	at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.handleOperation(EpicLinkRestFieldOperationsHandler.java:76)
            	at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.updateIssueInputParameters(EpicLinkRestFieldOperationsHandler.java:64)
            	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:428)
            	at com.atlassian.jira.rest.v2.issue.IssueInputParametersAssembler.makeCreateAssembler(IssueInputParametersAssembler.java:131)
            	at com.atlassian.jira.rest.v2.issue.CreateIssueResource.createIssue(CreateIssueResource.java:49)
            	at com.atlassian.jira.rest.v2.issue.IssueResource.createIssue(IssueResource.java:596)
            	... 213 more
            
            

            Philip Wiley added a comment - While this issue is listed as resolved in 7.1.0. In version 7.1.2, I am receiving a "500 Internal server error" when attempting to set the Epic link while creating an issue via the REST API. REST call POST: http://.../issues/rest/api/2/issue json body just contains just the required fields and the epic link { "fields" : { "project" : { "key" : "MYPROJ" }, "summary" : "test issue create" , "description" : "test issue create" , "issuetype" : { "name" : "MyIssueType" }, "customfield_11913" : "EPIC-123" } } Stack dump in the log 2016-06-03 14:35:26,403 http-nio-8080-exec-6 ERROR pjwiley 875x3695442x1 18yl0iz 131.198.88.104,198.151.224.69 / rest /api/2/issue [c.a.j. rest .exception.ExceptionInterceptor] Returning internal server error in response java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor4392.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.atlassian.plugins. rest .common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:192) at com.atlassian.plugins. rest .common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83) ... 3 filtered at com.atlassian.jira. rest .exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55) ... 1 filtered at com.atlassian.jira. rest .v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39) ... 14 filtered at com.atlassian.plugins. rest .module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154) ... 1 filtered at com.atlassian.plugins. rest .module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68) ... 86 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70) ... 15 filtered at com.atlassian.plugins. rest .module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37) ... 27 filtered at com.adaptavist.orientdb.OrientShutdownFilter.doFilter(OrientShutdownFilter.java:29) ... 50 filtered at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang. Thread .run( Thread .java:745) Caused by: java.lang.NullPointerException at com.atlassian.greenhopper.service.issuelink.EpicServiceImpl.addIssuesToEpic(EpicServiceImpl.java:90) at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.update(EpicLinkRestFieldOperationsHandler.java:104) at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.handleOperation(EpicLinkRestFieldOperationsHandler.java:76) at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.updateIssueInputParameters(EpicLinkRestFieldOperationsHandler.java:64) at com.atlassian.jira. rest .v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:428) at com.atlassian.jira. rest .v2.issue.IssueInputParametersAssembler.makeCreateAssembler(IssueInputParametersAssembler.java:131) at com.atlassian.jira. rest .v2.issue.CreateIssueResource.createIssue(CreateIssueResource.java:49) at com.atlassian.jira. rest .v2.issue.IssueResource.createIssue(IssueResource.java:596) ... 213 more 2016-06-03 14:35:27,834 http-nio-8080-exec-83 ERROR pjwiley 875x3695486x2 1gv3xan 131.198.88.104,198.151.224.69 / rest /api/2/issue [c.a.j. rest .exception.ExceptionInterceptor] Returning internal server error in response java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor4392.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.atlassian.plugins. rest .common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:192) at com.atlassian.plugins. rest .common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83) ... 3 filtered at com.atlassian.jira. rest .exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55) ... 1 filtered at com.atlassian.jira. rest .v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39) ... 14 filtered at com.atlassian.plugins. rest .module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154) ... 1 filtered at com.atlassian.plugins. rest .module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68) ... 86 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70) ... 15 filtered at com.atlassian.plugins. rest .module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37) ... 27 filtered at com.adaptavist.orientdb.OrientShutdownFilter.doFilter(OrientShutdownFilter.java:29) ... 50 filtered at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang. Thread .run( Thread .java:745) Caused by: java.lang.NullPointerException at com.atlassian.greenhopper.service.issuelink.EpicServiceImpl.addIssuesToEpic(EpicServiceImpl.java:90) at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.update(EpicLinkRestFieldOperationsHandler.java:104) at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.handleOperation(EpicLinkRestFieldOperationsHandler.java:76) at com.atlassian.greenhopper.customfield.epiclink.EpicLinkRestFieldOperationsHandler.updateIssueInputParameters(EpicLinkRestFieldOperationsHandler.java:64) at com.atlassian.jira. rest .v2.issue.IssueInputParametersAssembler$IssueInputParametersBuilder.finalizeIssueInputParams(IssueInputParametersAssembler.java:428) at com.atlassian.jira. rest .v2.issue.IssueInputParametersAssembler.makeCreateAssembler(IssueInputParametersAssembler.java:131) at com.atlassian.jira. rest .v2.issue.CreateIssueResource.createIssue(CreateIssueResource.java:49) at com.atlassian.jira. rest .v2.issue.IssueResource.createIssue(IssueResource.java:596) ... 213 more

              Unassigned Unassigned
              martin.tints Martin Tints
              Affected customers:
              0 This affects my team
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: