Impossible to deploy OnDemand

We have developed our add-on with 1.0.rc5. But we cannot register our add-on in json in marketplace. We get this error: Unknown error in plugin file

Please contact me if you need more information.

Best regards

Yves YANG

4 answers

1 accepted

Yes, you are right. Thank both of you. I'm just shame on myself for this stupid error.

There's a great phrase for these cases, I'm not sure how widely used it is - "Can't see the wood for the trees". It's aimed at those of us who see so much stuff in front of us, we can't actually see the one little mistake because there's so much other stuff going on. I think it applies here (and it happens to ALL humans!). We've all been there! :-)

Ditto on Nic's comments, but you should be proud of yourself. You needed assistance, you asked for help, you listened to what was being requested, your ego did not get in the way and you got the help you needed. Sounds like a good day to me! :>)

0 votes

There really is nothing to work with here. The error message says simply that your plugin is not written correctly, so all we can do is suggest that you fix it.

I guess you need to start with the atlassian-connect.json as that's the first thing it will be reading.

It works in development environment of 1.0.rc6 (I did a mistake to mention as 1.0.rc5).

You'll still need to debug whatever you've got. We can't help you with such a broad simplistic error message.

It is out of our control. How can we debug? Again, it works well in development mode. That is the problem with this "broad simplistic error message".

What is the difference between the environments? What are the full errors you are getting? What's the difference between "development mode" and "production"? Have you got other stuff that does work? If you take the sample code and build the example add-on, does that work? If so, what's different in your settings?

There really isn't any hope of us helping you here, you need to work through debugging and getting information we can work with.

When you develop an Add-on in OnDemand, you can start a local server using Atlassian Plugin SDK. This is what I refer as Development mode. And we can register our plugin in this server.

But we cannot register it using the Atlassian-plugi.json in the Marketplace. We get the error: "Unknown error in plugin file".


Ok, that's roughly what I expected. What about the rest of it - a Connect add on that does work? The sample code? What's the difference between a working Connect add-on and your code? (Probably starting with the atlassian-connect.json)

Here is our code:
{
    "name": "Gantt Chart Project for JIRA - OnDemand",
    "description": "This native JIRA plugin provides a set of powerful Project Management features based on Gantt-Chart like Microsoft Project.",
    "key": "com.soyatec.jira.plugins.jira-ganttchart-project",
    "baseUrl": "https://www.jiraproject.com/ganttconnect",
    "vendor": {
        "name": "Soyatec",
        "url": "http://www.soyatec.com"
    },
    "version": "0.1.2",
    "enableLicensing": true,
    "scopes": ["READ", "WRITE", "DELETE", "ADMIN"],
    
    "authentication": {
        "type": "jwt"   
    },
    
    "lifecycle": {
        "disabled": "/webhook/remote_plugin_disabled",
        "enabled": "/webhook/remote_plugin_enabled",
        "installed": "/webhook/installed",
        "uninstalled": "/webhook/uninstalled"
    },
    
    "modules": {
        "webSections": [
            {
                "name": { "value": "Plan" },
                "location": "ganttchart-dropdown",
                "weight": 500,
                "key": "ganttchart-section-1"
            },
            {
                "name": { "value": "Tracking" },
                "location": "ganttchart-dropdown",
                "weight": 500,
                "key": "ganttchart-section-2"
            },
            {
                "name": { "value": "Administration" },
                "location": "ganttchart-dropdown",
                "weight": 500,
                "key": "ganttchart-section-3"
            },
            {
                "name": { "value": "Plugiin" },
                "location": "ganttchart-dropdown",
                "weight": 500,
                "key": "ganttchart-section-4"
            }
        ],
        
	   "webItems": [
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    },
                    {
						"condition": "/action/displayCondition"
                    }
                ],
                "name": {
                    "value": "Gantt Chart"
                },
                "location": "system.top.navigation.bar",
                "url": "/action/hello",
                "tooltip": {
                    "value": "Gantt Chart JIRA Connect Add-on"
                },
                "key": "ganttchart-dropdown"
            },
            
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    },
                    {
						"condition": "/action/displayCondition"
                    }
                ],
                "name": { "value": "Resource Plan" },
                "url": "/action/resourceplan",
                "location": "ganttchart-dropdown/ganttchart-section-1",
                "weight": 1,
                "key": "gantt-resourceplan"
            },
            {
      		 	"conditions": [                    },
                    {
						"condition": "/action/displayCondition"
      		 	
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    },
                    {
						"condition": "/action/displayCondition"
                    }
                ],
                "name": { "value": "Project Portfolio" },
                "url": "/action/projectportfolio",
                "location": "ganttchart-dropdown/ganttchart-section-1",
                "weight": 2,
                "key": "gantt-projectportfolio"
            },
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    },
                    {
						"condition": "/action/displayCondition"
                    }
                ],
                "name": { "value": "Resource Tracking" },
                "url": "/action/resourcetracking",
                "location": "ganttchart-dropdown/ganttchart-section-2",
                "weight": 1,
                "key": "gantt-resourcetracking"
            },
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    },
                    {
						"condition": "/action/displayCondition"
                    }
                ],
                "name": { "value": "Portfolio Tracking" },
                "url": "/action/portfoliotracking",
                "location": "ganttchart-dropdown/ganttchart-section-2",
                "weight": 2,
                "key": "gantt-portfoliotracking"
            },
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    },
                    {
						"condition": "/action/displayCondition"
                    }
                ],
                "name": { "value": "Reporter Tracking" },
                "url": "/action/reportertracking",
                "location": "ganttchart-dropdown/ganttchart-section-2",
                "weight": 3,
                "key": "gantt-reportertracking"
            },
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_admin",
                        "invert": false
                    }
                ],
                "name": { "value": "General" },
                "url": "/action/general",
                "location": "ganttchart-dropdown/ganttchart-section-3",
                "weight": 1,
                "key": "gantt-general"
            },
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_admin",
                        "invert": false
                    }
                ],
                "name": { "value": "Working Schedule" },
                "url": "/action/calendar",
                "location": "ganttchart-dropdown/ganttchart-section-3",
                "weight": 2,
                "key": "gantt-calendar"
            },
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_admin",
                        "invert": false
                    }
                ],
                "name": { "value": "User Data" },
                "url": "/action/userdata",
                "location": "ganttchart-dropdown/ganttchart-section-3",
                "weight": 3,
                "key": "gantt-userdata"
            },
            {
      		 	"conditions": [
                    {
                        "condition": "user_is_admin",
                        "invert": false
                    }
                ],
                "name": { "value": "Shared Data" },
                "url": "/action/shareddata",
                "location": "ganttchart-dropdown/ganttchart-section-3",
                "weight": 4,
                "key": "gantt-shareddata"
            },
            {
                "name": { "value": "About Gantt chart Project for JIRA" },
                "url": "/action/about",
                "location": "ganttchart-dropdown/ganttchart-section-4",
                "weight": 1,
                "key": "gantt-about"
            }
        ],
	   
 
        "jiraProjectTabPanels" : [
      		{
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    }
                ],
                "url": "/action/timeplan?ctx_project_id={project.id}&ctx_project_key={project.key}",
                "name": {
                    "value": "Time Plan"
                },
                "key": "gantt-timeplan"
            },
      		{
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    }
                ],
                "url": "/action/progresstracking?ctx_project_id={project.id}&ctx_project_key={project.key}",
                "name": {
                    "value": "Progress Tracking"
                },
                "key": "gantt-progresstracking"
            },
      		{
      		 	"conditions": [
                    {
                        "condition": "user_is_logged_in",
                        "invert": false
                    }
                ],
                "url": "/action/projectreporter?ctx_project_id={project.id}&ctx_project_key={project.key}",
                "name": {
                    "value": "Reporter Tracking"
                },
                "key": "gantt-projectreporter"
            }
        ],
        
        "configurePage" : 	{
        		"key": "gantt-configre-page",
                "url": "/action/userdata",
                "name": {
                    "value": "User Data"
                } 
        },  
      
        "webhooks": [
            {
                "event": "jira:issue_created",
                "url": "/webhook/issue-created"
            },
            {
                "event": "jira:issue_updated",
                "url": "/webhook/issue-updated"
            },
            {
                "event": "jira:issue_deleted",
                "url": "/webhook/issue_deleted"
            },
            {
                "event": "jira:worklog_updated",
                "url": "/webhook/worklog_updated"
            }
        ]
    }
}

I tried validiating your posted json and it does not parse.

Hopefully, it was a cut and paste error but here is an errant piece of json, i can visually see.

"key": "gantt-resourceplan"
},
{
"conditions": [ },
{

You get it.

Thanks!

Now give Nic some love (karma points) getting you to post something we can work with.

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

3,146 views 13 19
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot