🤦‍♂️ Empty users and projects from REST API for just installed app

Hi!

When customers have just installed my app, very frequently, Jira REST API returns just empty array [] for getting /rest/api/3/user/search and /rest/api/3/project and only after 5-10 minutes it starts sending the data for the same endpoints with the same queries. This is true for both regular and impersonated query.

My app functionality depends on getting users and projects. So clients think that the app doesn’t work and uninstall it.

I have reported this bug, but Atlassian doesn’t give any response. This is so critical, that I don’t understand why this is not still fixed? It directly affects conversions.

Maybe someone has found a workaround for this?

4 Likes

We have a similar problem, after installation we set a flag and display some nice message to users until we get needed data.

1 Like

Hi @anton2,

Would you mind posting a link to the issue you logged.

Regards,
Dugald

@dmorrow
Sure, here is the ticket https://ecosystem.atlassian.net/servicedesk/customer/portal/14/DEVHELP-4053

Thanks!

Hi @anton2,

Would you mind helping me understand your problem. In the issue you created, you detailed the following steps to reproduce the issue:

  1. Create new Jira instance
  2. Try to load users by GET /rest/api/3/user/search?query= (to see all users) with JWT auth
  3. Empty array is returned
  4. When I try same endpoint in few minutes it start returning users

At what point is your app installed into the new Jira tenant?

Regards,
Dugald

@dmorrow

My app was installed after 1 and before 2. Right after instance creation.

But, again, hat happens not every time, I have created many new instances to test that case. Maybe you have some busy hours at your datacenters and during that hours there is not enough time to index something etc.

Thanks @anton2. The product teams have been investigating this problem, but there was no externally visible issue so I’ve created https://jira.atlassian.com/browse/JRACLOUD-74793.

This may be a challenging problem to solve, so I would encourage investigating the feasibility of a workaround such as retrying requests until they are populated with results.

Based on the investigation thus far, what other API endpoints follow the design pattern where “returning results” is a hard problem to solve? I want to be very clear this isn’t a sarcastic question. I am trying to understand what other API endpoints we need to audit our usage of where a similar backend set of decisions has been made by Atlassian.

1 Like

@dmorrow
Thanks for taking that into work!

Why the priority is low in the issue you have created? This directly affects app conversions. The client installs the app, sees an empty users list, which is required for the app to function properly, understands that this is a buggy app and uninstalls it…

1 Like

Same for us - direct impediment for conversion since picking a user is a first step to set up app. Lots of complaints from customers and some just leave feedback “bugs in addon” or similar. So its direct loss also to Atlassian and should have higher priority.

1 Like

I thought I raised the issue with a higher priority. Nevertheless, I’ve increased the priority now.

3 Likes

FYI, the internal discussion about this issue talks about the implementation being based on eventual consistency. I’m not sure what the solution will look like if we have an API guaranteeing deterministic behaviour that is dependent on a non-deterministic implementation. I figured I should share this with you to provide a sense of the challenges involved and the fact that there may not be a quick fix.

4 Likes

@dmorrow

Maybe you can show ‘The app is installing…’ status until you find that all APIs are operating? You can do it in a loop by a timer. At least it will be clear for people what is happening and that should not affect the conversions so drastically. And that would be fair, to make this workaround on your side.

1 Like