A long-running task has been initiated by another user - failed Connect app install
Asked by Maciej Wieczorek:

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](/t5/image/serverpage/image-id/348412i3E11C87B8B98AF3B/image-size/large?v=v2&px=999 "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?


Answers:
author: Shannon S
body: [@Maciej Wieczorek](/t5/user/viewprofilepage/user-id/5597629),

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](https://support.atlassian.com/contact/).

Thank you, and take care!

Shannon S

Atlassian Cloud Support


author: Shawn Doyle - ReleaseTEAM
body: Hi [@Maciej Wieczorek](/t5/user/viewprofilepage/user-id/5597629)

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

comments: author: Maciej Wieczorek
body: Thanks Shawn!


author: Maciej Wieczorek
body: 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.


author: Shawn Doyle - ReleaseTEAM
body: It's fine to post here, however the dev community is the better audience for this.


author: Shannon S
body: Hello [@Maciej Wieczorek](/t5/user/viewprofilepage/user-id/5597629),

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

As Shawn mentioned, the [Atlassian Developer Community](https://community.developer.atlassian.com/) 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**


Tags: atlassian-connect

cloud

confluence-cloud

connect