Cannot move my JIRA add-on to new host - error 500


I have been using a custom JIRA Add-on for a while now but I needed to move it to another server,
I have unisntalled the previous addon and when I try to upload the new atlassian-connect.json with new URL
all I get is:

The add-on host returned HTTP response code 500 when we tried to contact it during installation. Please try again later or contact the add-on vendor.

Audit log:

Failed to install add-on plugin.7724085165736448913.atlassian-connect.json	John Doe Jan 8 2018 2:51:42 PM

I can’t see any error when accessing the descriptor directly on my server. I get the JSON content as expected:

     "name": "xxx",
     "description": "xxx",
     "key": "",
     "baseUrl": "",
     "vendor": {
         "name": "ABC",
         "url": ""
     "authentication": {
         "type": "jwt"
    "lifecycle": {
		"installed": "/installed",
		"uninstalled": "/uninstalled"
	 "scopes": [
     "apiVersion": 1,
     "modules": {
		 "webPanels": [
				"location": "atl.jira.view.issue.left.context",
				"url": "/attach.html?issue={issue.key}",
				"weight": 300,
				"key": "xxx",
				"name": {
					"value": "XX"

Same for the URL, I can open it no problem, I have no browser errors neither can I find 500 errors on my server.

Does anyone have an idea as to what is happening? Works on other server not when I change the baseUrl…? Is there a way I can debug this?

Many thanks

Anyone have an idea or pointers as to how I can debug error 500 when uploading this new add-on?

The error message:

seems to indicate that there is an error thrown from your app. My guess is that the /installed hook isn’t cooperating properly. Make sure that it’s returning back 204 or 200.

1 Like

Excellent @daniel that helped me fixed it. Thank you!
I learned about what these mysterious lifecycle hooks were actually doing.

    "lifecycle": {
		"installed": "/installed",
		"uninstalled": "/uninstalled"

I just copy pasted these from a tutorial. Old server used to respond OK even if there was nothing at the end of these hooks. Got http error 500 on the new server.
So I’ve changed the descriptor now:

    "lifecycle": {
		"installed": "/jira_confirm.php",
		"uninstalled": "/jira_confirm.php"

And added a file jira_confirm.php:

Simple Yes script to respond positively 
to the add-on lifecycle hooks: "installed" and "uninstalled" 
header("HTTP/1.1 200 OK");

And it works now :+1:

1 Like