← ClaudeAtlas

http-error-triagelisted

Run before concluding anything from an HTTP error on a third-party API. Separates a real credential/entitlement problem from a CDN or WAF block, a wrong endpoint, or a client-signature ban. Use whenever an API returns 401/403/402/429 and you are about to say "the key is dead", "credits are exhausted", "the plan lacks access", or "we are rate limited".
getedgehq/skills · ★ 3 · AI & Automation · score 71
Install: claude install-skill getedgehq/skills
# HTTP error triage An HTTP error tells you a request failed. It usually does **not** tell you why. Concluding "the key is dead" from a 403 is a guess wearing a number. Born from a real incident (2026-07-30): a third-party contact-enrichment API returned `403 error code: 1010` to every call for six days. It was read as "key not entitled", "credits exhausted", "monthly quota reached". A 756-line browser automation workaround was built on that belief, and a customer was nearly asked to check a plan that was fine. The actual cause was a missing `User-Agent`, so the CDN banned the client at the edge. One header fixed it: 200 OK, full data, and the credit balance had been there the whole time. ## Run these three controls before you diagnose **1. The invalid-credential control.** Send the same request with a deliberately garbage credential, and again with none at all. ```python for label, key in [("real", REAL_KEY), ("garbage", "0"*36), ("empty", "")]: ... # same URL, same method, same headers ``` If all three return the **same** status and body, the error is not about your credential. It carries zero information about entitlement, quota or validity. Stop reasoning about the key. **2. The nonsense-path control.** Request a path that certainly does not exist, and the site root. ``` GET https://api.example.com/definitely-not-a-real-path-12345 GET https://api.example.com/ GET https://www.example.com/ # their marketing site ``` If the API error also comes back fr