You open Home Assistant, click into the integrations store, and the panel either spins forever or throws a red error about GitHub. HACS leans entirely on GitHub to fetch its catalogue and downloads, so when it fails to load, the cause is almost always an expired access token or a GitHub API rate limit, and both of those announce themselves with distinct error text that points straight at the fix.
Quick Answer
Check the HACS logs for the exact error. If it mentions an expired or invalid token, reauthorise HACS with a fresh GitHub personal-access token. If it mentions a rate limit, confirm HACS is authenticated, wait up to 60 minutes for the limit to reset, then restart Home Assistant. An authenticated session prevents most of these failures outright.
Read the error before touching anything
HACS does not fail silently. The HACS panel and the Home Assistant logs spell out which of the two common problems you are hitting, so read them first rather than guessing. A token problem shows messages about expired or invalid credentials. A rate-limit problem references the GitHub API and a limit being reached. Knowing which one you have saves you from chasing the wrong fix.
The reason both exist is that HACS talks to GitHub for everything: listing repositories, checking versions, and downloading components. Unauthenticated requests hit GitHub's strict anonymous rate limit fast, while an authenticated session gets a far higher ceiling and rarely trips it.
Fixing an expired or missing token
If the logs point at credentials, the token HACS uses to authenticate with GitHub has expired or was never set. Reauthorising restores it. Remove and re-add the HACS integration, or trigger its reconfigure flow, and follow the prompt to generate a new personal-access token on GitHub and paste the device code HACS gives you.
An authenticated HACS session is the single most effective preventative step. With a valid token in place, HACS gets the raised GitHub rate limit and the majority of update and load failures simply never happen. Setting this up correctly during initial configuration is the guidance most current troubleshooting writeups stress. A reliable always-on box keeps Home Assistant and HACS humming, and compact machines suited to that role sit in the smart home and appliances range.
Clearing a rate-limit block
If the error names a GitHub rate limit, first confirm HACS is authenticated, because an unauthenticated instance hits the anonymous limit quickly. If you are already authenticated and still limited, the fix is patience: wait around 60 minutes for GitHub's limit window to reset, then try again.
While you wait, clear the browser cache and the Home Assistant frontend session, then force a HACS repository refresh once the window resets. After any HACS update or reauthorisation, restart Home Assistant fully, since many custom components only load their new code paths after a complete restart. A solid network connection from your Home Assistant host matters here too, and the cabling and networking spares for that are quick to grab from the accessories best sellers.
Frequently Asked Questions
Why does HACS depend on GitHub at all?
HACS is a store front for community integrations hosted on GitHub. It uses GitHub's API to list repositories, check for updates, and download components, so any GitHub authentication or rate-limit problem stops it loading.
How do I know if it is a token or a rate-limit issue?
Read the HACS panel and Home Assistant logs. A token problem mentions expired or invalid credentials; a rate-limit problem references the GitHub API limit. The error text tells you which fix to apply.
How long does a GitHub rate limit last?
The limit resets on a rolling window, typically within about 60 minutes. Wait for the window to pass, then retry. Staying authenticated raises the ceiling so you rarely hit it again.
Do I have to restart Home Assistant after fixing HACS?
Yes, for most changes. A full restart loads new code paths and validates entities and services, which is required for many custom component updates and reauthorisations to take effect.
Can I avoid these errors entirely?
Largely, yes. Authenticate HACS with a valid GitHub personal-access token during setup. An authenticated session gets the higher rate limit and prevents the bulk of load and update failures before they start.