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:
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?
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
Thanks for the detailed post. I don't have an answer for you, but I can summon the ones that do.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It's fine to post here, however the dev community is the better audience for this.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.