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.
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.
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.
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…
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.
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.
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.