From b01463f93275a6276f353a32b15fd6590d752d4c Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Tue, 31 Mar 2026 12:30:08 -0700 Subject: [PATCH] Disable rate limiting on relay endpoint Relay calls from the SDK don't include api_key or app_name, causing them to fall back to IP-based rate limiting at 5 RPS. This breaks batch track uploads (e.g. 22 tracks via Promise.all) which exceed that limit. Skip rate limiting on /relay until the SDK properly identifies itself. Co-Authored-By: Claude Opus 4.6 --- api/rate_limit_middleware.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api/rate_limit_middleware.go b/api/rate_limit_middleware.go index 819703f8..9128ec4d 100644 --- a/api/rate_limit_middleware.go +++ b/api/rate_limit_middleware.go @@ -109,6 +109,11 @@ type RateLimitMiddleware struct { // Middleware returns the Fiber handler. Pass apiServer to resolve identifier from Bearer or Basic Auth signer first; if nil or no signer, falls back to api_key/app_name query params. func (rlm *RateLimitMiddleware) Middleware(apiServer *ApiServer) fiber.Handler { return func(c *fiber.Ctx) error { + // Skip rate limiting for relay endpoints + if strings.HasPrefix(c.Path(), "/relay") { + return c.Next() + } + var identifier string if apiServer != nil { signer, err := apiServer.getApiSigner(c)