Running GET /api/v2/logs/messages with sessionId and timestamp boundaries hits a 429. The cursor stops advancing, so fetchLogStream() loops the same offset block. Switching to Accept: application/x-ndjson helps, but parseJsonStream() drops eventType payloads.
{ "code": 429, "message": "Rate limit exceeded", "cursor": "eyJvZmZzZXQiOjE5OH0=" }
storageQuota shows 78%. It’s throttling GET calls. Stream dies at offset: 198.