Symptom

The sync info panel does not display the name of the synchronization, and the project key on the Synced with section does not contain a clickable link to the partner project:

Explanation

This is because the synchronization user does not have Project Administrator permissions. Therefore, it is not able to save the required information at project level – that's why this information is missing from the sync info panel.

In this situation, calling this Jira API:

GET http://{{serverURL}}/rest/api/2/project/AG/properties
CODE

returns an output like this:

{
	"keys": []
}
JS

Solution

There are two ways to fix this problem:

Semi-automatically

The fastest and easiest way is to temporarily give Project Administrator rights to the synchronization user, so that this information gets added to the sync info panel.

  1. Give the required Project Administrator permissions to this project's synchronization user
  2. Stop the synchronization, wait a few minutes, then start it again
  3. Remove the synchronization user's admin rights

Manually

You can try a second method if the previous way doesn't apply to your use case:

  1. Identify one issue with the missing information – for example AG-1447
  2. Use the following Jira API call to get all the Backbone synchronization information (use a tool like Postman for this):
GET http://{{serverURL}}/rest/api/2/issue/AG-1447/properties
CODE

You should get an output like this:

{
  "keys": [
    {
      "self": "http://{{serverURL}}/rest/api/2/issue/14826/properties/k15t.backbone.syncinfo.7adc8364-9c51-4d46-8944-6f642d83abb5",
      "key": "k15t.backbone.syncinfo.7adc8364-9c51-4d46-8944-6f642d83abb5"
    },
    {
      "self": "http://{{serverURL}}/rest/api/2/issue/14826/properties/k15t.backbone.syncinfo.ee230e0c-d1de-4ab1-99e0-5c6f043c1a21",
      "key": "k15t.backbone.syncinfo.ee230e0c-d1de-4ab1-99e0-5c6f043c1a21"
    }
  ]
}
CODE

3. Now, you need to find out which key value corresponds to the synchronization you want to fix.

You can do this by opening the corresponding self addresses in your browser, and checking the outputs, which look like this:

{
  "key": "k15t.backbone.syncinfo.7adc8364-9c51-4d46-8944-6f642d83abb5",
  "value": {
    "connectorKey": "AG-2",
    "localIssueKey": "AG-1447",
    "remoteIssueKey": "PIC-246",
    "firstSyncDate": 1487150816717,
    "lastOutgoingChange": 1487156191129,
    "outgoingMessageSequenceId": 3,
    "lastIncomingChange": 1487152926189,
    "incomingMessageSequenceId": 3,
    "sendStatus": "SUCCESS",
    "receiveStatus": "SUCCESS"
  }
CODE

If the localIssueKey is the same as the issue key of the issue you identified had a problem in step 1, and the remoteIssueKey is the issue key of the issue that you are synchronizing with, then this self address corresponds to the correct key address for the synchronization. If it's not the same, then you need to keep trying different self addresses until you find the right one.

4. Now, use the key value you identified in step 3 to make the location where you address the project you want to fix:

http://{{serverURL}}/rest/api/2/project/AG/properties/k15t.backbone.syncinfo.7adc8364-9c51-4d46-8944-6f642d83abb5
CODE

5. In the next few steps, you are going to perform a PUT call to insert the missing data.

Firstly, prepare your JSON data with this structure:

{
  "integrationName": "Correct integration name",
  "partnerBaseUrl": "http(s)://some-valid-url/"
}
CODE

6. Now, using the previous JSON block (shown in step 4) in your body request, and using content type application/json, perform the PUT call:

PUT http://{{serverUrl}}/rest/api/2/project/AG/properties/k15t.backbone.syncinfo.7adc8364-9c51-4d46-8944-6f642d83abb5
CODE


7. You're done.

If everything was fine than you should receive a 201 Created message.