How to find out the status of a Confluence Cloud instance

We are trying to send a requests to Confluence Cloud instances that used to have our plugin installed, to find out whether the plugin is still installed. If the plugin is not installed anymore, we want to delete any data related to the customer from our servers.

For instances that are running properly, this is easy, we can just send a JWT-authenticated HTTP request to a URL that belongs to our plugin and receive a 401 or 404 error if our plugin does not exist anymore.

However, there are many instances where we get an error code 502 or 503 instead, with different types of error messages:

  1. “Oops, something went wrong.” – This is the most common 502 error. It seems to come up for cloud instances that don’t exist anymore (see for example https://thisdoesnotexist.atlassian.net/wiki/)
  2. “There’s an issue with your site. Your billing contact will need to log in to resolve this issue.” – Comes with a 502 error. Not sure what is going on, maybe something was not paid?
  3. “We are currently in the middle of a scheduled weekly maintenance window. Your site will be available shortly.” – Comes with a 503 error. We have at least 3 users where this error comes permanently.

Ideally, we would only remove the plugin data from our servers if our plugin is not installed on the Confluence instance anymore. We need to answer these questions before doing that:

  • How can we find out whether messages 1 or 3 are because the cloud instance does not exist/work anymore, or because of some actual temporary condition (for example an actual weekly maintenance, or some downtime of atlassian.net)
  • In which of these cases does the cloud instance actually not exist anymore, and in which is it only temporarily disabled?

The exact billing status for the instances isn’t available publicly so your remote service will need to record instances which it can’t contact and try again later. You will need to decide how many times is reasonable to try and perhaps give up when you think its tried enough.

I’m interested to know what data you are referring to and why its so important to remove it?