> For the complete documentation index, see [llms.txt](https://docs.cloud-halo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cloud-halo.io/trust-and-support/common-issues.md).

# Troubleshooting

Use this page when Cloud Halo does not behave as expected.

## Overview shows no cost data

Check:

* The workspace has an active trial or paid plan
* Azure is connected
* The Azure identity has Cost Management Reader at the correct scope
* The subscription ID is correct
* A sync has completed successfully
* Azure role assignment propagation has had time to complete

## Azure sync fails

Common causes:

* Service Principal secret expired or was rotated
* Azure role assignment was removed
* The subscription is no longer accessible
* The billing model requires additional read-only billing access
* Azure Cost Management API returned a temporary error

Open Azure connections and review the latest sync error.

## Service Principal expiry is unavailable

Cloud Halo can warn about known Service Principal secret expiry dates, but expiry data may not always be available.

If the expiry is unavailable, track the credential lifecycle in Azure and rotate secrets before they expire.

## OAuth sign-in redirects to localhost

If Google, GitHub, or Microsoft sign-in redirects to a localhost URL in production, the authentication redirect URLs need to be corrected in the identity provider or authentication platform.

Send support the full redirect URL and the provider you used.

## Billing gate blocks access

Check:

* Checkout completed successfully
* The workspace trial is still active, or the subscription is active
* The billing page shows the expected plan
* Stripe webhook delivery has completed

If checkout completed but the workspace is still blocked, ask an owner to refresh billing state or contact support.

## Alerts are not delivered

Check:

* Alert preferences are enabled
* Email recipients are correct
* Slack webhook URL is valid, if used
* Email delivery is configured for the Cloud Halo environment
* Alert event status shows sent rather than failed

## Recommendations are empty

Recommendations may be empty if:

* No Azure sync has completed
* Azure Advisor has no active recommendations for the connected subscription
* The workspace has too little historical cost data for Cloud Halo heuristics
* Recommendations were dismissed or resolved

Run a manual sync, then review the Recommendations page again.

## Cost allocation actions are disabled

Check:

* The workspace has an active plan
* Your role can manage allocation settings
* Cost allocation is included in the current plan
* At least one allocation dimension exists before creating rules

## Workspace switcher shows an old workspace

Refresh the page after archiving or removing a workspace.

If the old workspace still appears, sign out and sign back in. If the issue remains, ask a workspace owner to confirm your membership and workspace archive state.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cloud-halo.io/trust-and-support/common-issues.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
