Redirects for lifecycle URLs do not work (anymore?)

Yesterday, we got a notification from a customer that suddenly they couldn’t install our connect app anymore, with the lovely “A little trouble” error. Lo and behold, it was broken indeed.

The cause:

We have dared to point the lifecycle to an URL which gets redirected:

  "lifecycle": {
    "installed": "/installed"

Which indeed gets redirected with a 301 to the URL with a slash. This has worked fine basically since forever, at least in May the infrastructure was perfectly able to follow these redirects:

x.y.z.w - - [13/May/2024:14:34:37 +0200] "POST /installed HTTP/1.1" 301 243 "-" "Atlassian HttpClient unknown / Confluence-1000.0.0-asdfghj (6452) / Atlassian-Connect/1000.0.0-2c2f6412bb70" "-"
x.y.z.w- - [13/May/2024:14:34:37 +0200] "POST /installed/ HTTP/1.1" 200 660 "-" "Atlassian HttpClient unknown / Confluence-1000.0.0-asdfghj (6452) / Atlassian-Connect/1000.0.0-2c2f6412bb70" "-"

However, it seems this has stopped working (probably) two days ago (at least according to our server logs - the second successful request is missing)

Have I missed an important announcement :angry: :angry: :angry:

Support has told me that anything except status codes in the 20x range is considered an error. Which, as I may add, is just moronic, but to be expected.

Anyway, if your apps suddenly cannot be installed anymore, you may want to double check your URLs and server logs…

BTW, has anyone any idea:

  • how to look into the host product logs? This would have saved us sooooo much time.
  • speed up the propagatino of the app descriptor? having to guess a change and then waiting for like 10 hours to test it is just insane.



Hi @JasmineMller ,

We recently upgraded the HTTP client in the installation callback code for Confluence, which was likely to be the cause. We did not make any announcement because we did not intend to change the API contract, and don’t consider respecting redirects to form part of that contract. Apologies! I’ve raised a PR to make this explicit in our docs.

We don’t offer a way for customers to share sanitised or bespoke logs specific to app events, but a customer could consult their audit log for clues.

Speedier rollouts (without any lifecycle hooks) of upgrades that don’t require admin approval can be accessed by registering your Connect app on Forge (no need to rewrite the modules to Forge modules) - see Limitations and differences and the sibling pages.

James Hazelwood
Engineer, Atlassian Ecosystem