Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

A long-running task has been initiated by another user - failed Connect app install

Maciej Wieczorek September 20, 2024

I'm working on a small Connect app in a development instance before bringing it into our main (paid, 1000+ seat) corporate account. The company much prefers to self-host where possible, hence Connect over Forge.

A bad install has put my Confluence instance into this state:

confluence.png

Another comment (https://community.atlassian.com/t5/Confluence-questions/Re-A-long-running-task-has-been-initiated-by-another-use/qaq-p/1342904/comment-id/172515#M172515) suggested that the correct way to get this resolved is through a new post here.

 

Context and to chronicle how we got here in case it helps anyone in the future:

Following the documentation (

https://developer.atlassian.com/cloud/confluence/getting-started-with-connect/ and https://bitbucket.org/atlassian/atlassian-connect-express/src/master/), ACE created a project template and the documentation then said to bring up an ngrok tunnel. Things seem to have changed with ngrok, and without a paid plan there doesn't seem to be a way to get past the click-through screen when the request comes from Atlassian. For Forge, looks like Atlassian has migrated to Cloudflare but that doesn't help me here.

I have a cloud VM with an nginx reverse proxy, so I put the ACE app behind it, in a container. The first thing I ran into was that registration from ACE fails, with the logs:

 

Failed to register with host https://my-dev-instance.atlassian.net/wiki (200)

Invalid Atlassian Connect descriptor: JSON is not well-formed (Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

at [Source: (com.atlassian.plugin.connect.plugin.descriptor.ConnectJsonSchemaValidatorImpl$JsonDescriptorStringReader); line: 1, column: 2]). Please contact the app vendor for details.

{"type":"INSTALL","pingAfter":300,"status":{"done":true,"statusCode":200,"contentType":"application/vnd.atl.plugins.task.install.err+json","subCode":"connect.invalid.descriptor.malformed.json","errorMessage":"Invalid Atlassian Connect descriptor: JSON is not well-formed (Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (com.atlassian.plugin.connect.plugin.descriptor.ConnectJsonSchemaValidatorImpl$JsonDescriptorStringReader); line: 1, column: 2]). Please contact the app vendor for details.","source":"https://my-vm.cloud-vendor.com/atlassian-connect.json","name":"https://my-vm.cloud.com/atlassian-connect.json"},"links":{"self":"/wiki/rest/plugins/1.0/pending/6e9d867a-5080-4882-bc0e-d8ff391194f8","alternate":"/wiki/rest/plugins/1.0/tasks/6e9d867a-5080-4882-bc0e-d8ff391194f8"},"timestamp":1726835319283,"accountId":"123456789-abcdefg","id":"abc-123"}

After tearing my hair out for a day, and validating the JSON schema umpteen times, it turns out that express will serve the JSON in a different format if it comes from registration initiated by ACE than through the Manage Apps page in Confluence Cloud. You can tell by the payload size (correct: 626 bytes, incorrect: 1819 bytes). Notably, attempting an install through the "Manage apps" page serves up the correct 626-byte descriptor, but gives less useful debug information.

The next issue is that the `key` in the descriptor must be unique. When I tried the default `my-app` key generated by the template, it would fail with the generic failure message. After setting this to be a unique key, it appeared to start installing, but has been stuck as per the screenshot above. Any attempts to install any other app fail.

I've also made the change to the `installed` lifecycle per https://stackoverflow.com/questions/46512198/atlassian-connect-express-credentials-rejected-at-connect-ace-atlassian-net/60507647#60507647 but I'm not sure if this is still necessary.

Could someone please remove this long-running app, and ideally give us a way to delete them ourselves?

 

2 answers

0 votes
Shannon S
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 23, 2024

@Maciej Wieczorek,

Thank you for your patience. Actually, this is something support can help solve via the database, so you can raise a support ticket for this sort of thing. I went ahead and created a ticket on your behalf, so please have a look at your email!

In the future, since you are a product administrator of a Confluence Standard site, you can raise a ticket via support.atlassian.com/contact.

Thank you, and take care!

Shannon S

Atlassian Cloud Support 

 

0 votes
Shawn Doyle - ReleaseTEAM
Community Champion
September 20, 2024

Hi @Maciej Wieczorek 

 

Thanks for the detailed post.  I don't have an answer for you, but I can summon the ones that do.

Maciej Wieczorek September 20, 2024

Thanks Shawn!

Maciej Wieczorek September 20, 2024

Please also let me know if this should be posted to the developer community instead. It's not really clear to me what's supposed to go where.

Shawn Doyle - ReleaseTEAM
Community Champion
September 20, 2024

It's fine to post here, however the dev community is the better audience for this.

Shannon S
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 23, 2024

Hello @Maciej Wieczorek,

Thanks for raising this question on Atlassian Community! It's nice to have you join us.

As Shawn mentioned, the Atlassian Developer Community is the best team to answer this sort of question. I've flagged this question with them, but in the meantime, you may be able to find your answer there.

Take care, and I hope we can get your question answered shortly!

Shannon S 

Atlassian Cloud Support

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
STANDARD Trial
PERMISSIONS LEVEL
Product Admin
TAGS
AUG Leaders

Atlassian Community Events