HTTP response code 401. Not able to install private listed app using token

My app has already been listed on marketplace in private mode. There are 2 active installations as wel. But now when I try to install it in new account using token, it throwing error like ‘The app host returned HTTP response code 401 when we tried to contact it during installation. Please try again later or contact the app vendor.

Not able to figure out the possible reason behind it. It was working working fine unitl my jira subscription got expired. Getting above error after the renewal of the subscription.
Here is the link of descriptor url:
https://attribute-ratings.herokuapp.com/atlassian-connect.json

Hi @pramody,

Thank you for coming back to the community.

I’ve just added a comment to this post a few minutes ago on what looks like a similar problem (even if not exactly the same, the reason could be the same):

Can you please have a look and let me know if that helps?

If not, please let me know.

Thanks,
Caterina

1 Like

@pramody
Also have a look at this list of suggestions for a similar case - /installed endpoint responds with 404.

2 Likes

Thank you @ViliusZigmantas for your supports.

After lots of debugging I’ve found the solution.

I added below endpoint in my rout file and it worked.
app.get('/', (req, res) => { res.redirect('/atlassian-connect.json'); })

But I wonder how it was working before? Is there any update from atlassian side?

@pramody

No problem. You’re welcome.

Indeed this is odd. Code you’ve shared maps out root (/) route and instructs server to redirect to another URL (your ACE descriptor). This case would applicable when root based URL is used to install new application in Manage Apps (e.g. https://attribute-ratings.herokuapp.com/ is used instead of https://attribute-ratings.herokuapp.com/atlassian-connect.json). If you are sure that you’ve used the later URL, then the issue might still persist. Try installing application using both URL variations and see if both result the same outcome.

PS. here’s how I’ve have this route mapped (printing out descriptor JSON instead of redirect, saves some traffic):

    router.get('/', function (req, res) {
        res.charset = "UTF-8";
        res.json(addon.descriptor);
    });
1 Like