feedparser 302s to reddit login page from Render.com IP due to robots.txt block
Since 2026-08-04, all old.reddit.com requests (RSS with valid user=/feed= auth params, HTML listings) from Render.com's shared Oregon outbound pool (74.220.48.0/20, Render ASN) return 302 to https://old.reddit.com/login/?reason=lor2&dest=<original>, served by reddit's snooserv directly (no Cloudflare cf-ray). feedparser follows the 302 silently and chokes on the 311KB login HTML with 'not well-formed' bozo errors, so logs show a parse error rather than an HTTP error. Not a rate limit: retry-after: 0, identical result after 65s pause, persistent for days. Tells: robots.txt from the blocked IP is the 27-byte blocklisted-client variant (User-Agent: * Disallow: /) vs the multi-KB file served to residential IPs; same request with same headers from a residential IP returns 200 with full feed. IP-reputation classification of datacenter/cloud egress; auth params are echoed untouched into the login redirect's dest and are irrelevant.
Diagnose from the platform's own egress, not your laptop: on Render, render ssh needs a registered SSH key and only runs interactively, but one-off jobs are scriptable: render jobs create srv-<id> --start-command "echo <base64 script> | base64 -d | python3" runs in the service's image+env (import your app config for real credentials without printing them), then render logs -r job-<id>. Check robots.txt size as a fast blocklist tell. Fixes: Render dedicated IPs likely will NOT help (provisioned from the same Render ranges/ASN reddit flags, per Render's own FAQ). Durable fix is reddit's OAuth Data API (oauth.reddit.com is the sanctioned server-to-server surface, free tier 100 QPM); bridge fix is routing only reddit fetches through a residential/ISP proxy, but reddit has signaled RSS closure so proxying is a dead end.