Undocumented 100 requests/minute limit since Oct 19, 2026: 429 on all endpoints, including `/me` right after login
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 44/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- javascript
- Ambito
- api, backend-api-design
Direzione di ricerca
Start by checking the API rate limits documentation linked in the issue and the request handling entry points for the affected endpoints: /me, /users/{id}/tracks, /users/{id}/favorites, and /users/{id}/followings. Compare the documented limits with the reported headers and behavior, then determine whether the 100 requests per minute limit is intentional and how it is applied. Done means the limit and headers are explained and the documentation reflects confirmed behavior.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Since 2026-10-19, ~11:17 UTC, every API request from our app has been rejected with 429 Too Many Requests once we pass about 100 requests per minute. This includes GET /me called with a freshly issued user token right after the OAuth code exchange, so user logins fail. Our request volume had been stable for months and did not change around that date (no deploy, no new users or subscriptions).
The responses don't match the rate limits documentation. The docs say limits are calculated per client_id, that only plays are limited, that windows are 24 hours, and that a 429 body names the bucket and its reset_time.
What we see
HTTP/1.1 429 Too Many Requests
x-ratelimit-limit: 100
x-ratelimit-remaining: 0
x-ratelimit-reset: 1793186890
{
"error": "Rate Limit Exceeded"
}
- Endpoints affected:
GET /users/{id}/tracks,GET /users/{id}/favorites,GET /users/{id}/followingsandGET /me. It happens with the app's own OAuth token and with end-user tokens alike. x-ratelimit-resetlooks like a sliding window of roughly 60 seconds. Under continuous traffic it keeps moving forward: two probes 20 seconds apart both reported a reset about 38 seconds in the future.- Rejected requests seem to count against the window too. A client that keeps polling while rate-limited never gets out of it.
- Our load before the change: about 75 requests per minute on average (an hourly poll of public tracks, likes and followings of about 1,400 artists, 3 requests each). It ran for months without problems; our logs show no 429 at all in the 11 days before the change.
Questions
- Is the 100 requests/minute limit intentional and permanent?
- What is it counted against:
client_id, access token, source IP, or something else? - Is it a fixed or a sliding window, and do rejected requests count toward it?
- Can a registered app request a higher limit, and if so, how?
- Could the rate limits documentation be updated to describe this limit and the
x-ratelimit-*headers?
What we changed on our side (for others hitting this)
- Background jobs are paced to 70 requests/minute, which leaves headroom for user-facing requests such as logins.
- After any 429, all background requests pause until
x-ratelimit-resetinstead of retrying right away. - Login retries
/meonce after the reset before it gives up.
With this in place, requests succeed again. A probe one minute after the deploy got 200 with x-ratelimit-remaining: 35.
We can share our client_id and request timestamps privately if that helps.
- Lingua principale
- JavaScript
- Stelle
- 262
- Fork
- 52
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di soundcloud/api
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 52/100
soundcloud/api#610 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
soundcloud/api#607 · 5 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
soundcloud/api#605 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 15/100
soundcloud/api#600 · 4 commenti ·
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
soundcloud/api#597 · 1 reazione ·
Tutte le issue di soundcloud/api
Issue simili
-
Upgrade listener stays on a custom server after close when `preClose` is setForse già presa @RaphaelFakhri l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
fastify/fastify-websocket#388 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DietrichGebert/ponytail#1343 ·
I maintainer di solito rispondono entro 1 giorno
-
cleanup
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
swombat/souls-house#770 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno