From the docs, I understand that org/app admins can disable analytics access for apps.
I’d like to handle this proactively and avoid attempting event delivery in those instances.
Is there any official runtime signal/API/context value in Forge to check whether analytics access is currently disabled for the installation (before sending events)?
For example, is there any supported way to:
Query analytics-access status at runtime per tenant/install.
Distinguish “admin-disabled analytics” from generic network/egress failures.
Get a webhook/event when this admin setting changes.
If there is no direct API today, what is the recommended pattern from Atlassian for resilient behavior (for example, circuit breaker/backoff strategy and expected error codes/messages)?
If analytics is enabled, it says the frontend does not have permission but the backend does.
If analytics is disabled, neither the client nor the backend has permission.
None of these cases solves the problem because the behavior is inconsistent. With analytics enabled, all checks should return OK, and with analytics disabled, all checks should return KO.
I’ve verified that if, as an admin, I disable analytics, my app fails when trying to send data to Amplitude from the backend. I assume there’s an interceptor blocking those requests, which is the expected behavior. However, if I send data from the frontend, nothing intercepts it and the data is still sent. That means I can’t rely on the platform preventing data from being sent, and I need a way to check beforehand to avoid sending it.
for what it’s worth, we’ve decided to treat it as follows:
It seems that the resolver-side permissions.canFetchFrom('backend', ANALYTICS_URL) actually returns the truth and only the client equivalent is bugged. We use a resolver on Custom UI startup to check the permission for the backend and use it for the frontend as well.
The customer admin has no way to disable only backend or client analytics, it’s an everything or nothing button, so the partial check is enough for now.