{"id":"IL-0346","org":"Render","date":"2025-11-05","docs":[],"title":{"en":"Render's routing service returned intermittent 404s for web services and static sites in Oregon","ko":"Oregon 리전의 웹 서비스와 정적 사이트가 간헐적으로 404 응답을 냈다"},"domain":["networking"],"impact":{"scope":"Web services and static sites in two Oregon clusters returned intermittent 404 responses, about 10% of requests in one cluster in the first period and about 50% in the affected cluster in the second; newly created services got 404, updates to existing services propagated slowly, and recently deployed or waking free tier services were affected","users":"Some customers hosting web services and static sites in the Oregon region","region":"Oregon"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":null,"related":[],"sources":[{"url":"https://status.render.com/incidents/h255yv1rsq2d","kind":"official-status","archived":"https://web.archive.org/web/20251216032915/https://status.render.com/incidents/h255yv1rsq2d"}],"summary":{"en":"Render's routing service depends on a metadata service for information about the user services it routes HTTP traffic to. When a routing instance starts, and on occasional reconnects, it requests a large volume of data from the metadata service. Earlier in 2025 Render deployed a memory optimisation for this transfer behind a feature flag. In late October the flag was removed from code and redeployed, but the metadata service was not redeployed and still depended on the flag. On 5 November the cleanup of unreferenced feature flags removed it, the metadata service reverted to the less efficient transfer, ran out of memory and crashed.\n\nThe routing service is designed to keep serving from its last known state when the metadata service is down, but new routing instances that never loaded their initial state were wrongly put into service and returned 404. In the first period the metadata service was crashing in two clusters and only a small share of routing instances was affected. In the second period a surge of HTTP requests scaled up the routing service, and all new instances returned 404, so about half the requests in the affected cluster failed. Render gave the metadata service more memory, re-enabled the feature flag for a time, and then deployed the metadata service without its dependency on the flag. The status page moved to monitoring at 20:48 UTC and the incident was marked resolved at 21:52 UTC.","ko":"Render 의 라우팅 서비스는 트래픽을 보낼 사용자 서비스의 정보를 메타데이터 서비스에서 받는다. 라우팅 서비스는 처음 시작할 때와 가끔 다시 연결할 때 메타데이터 서비스에서 많은 양의 데이터를 받는다. Render 는 2025년 초 두 서비스 사이의 데이터 전송에 드는 메모리를 줄이는 최적화를 기능 플래그로 켜고 끌 수 있게 해서 배포했다. 10월 말에는 코드에서 플래그를 지우고 다시 배포했지만, 아직 플래그에 기대던 메타데이터 서비스는 다시 배포하지 않았다.\n\n11월 5일, 코드가 더는 참조하지 않는 기능 플래그를 정리하자 메타데이터 서비스가 옛 전송 방식으로 돌아가 메모리가 바닥나고 죽었다. 라우팅 서비스는 메타데이터 서비스가 멈춰도 마지막으로 알던 상태로 트래픽을 계속 처리하도록 설계돼 있었다. 그런데 초기 상태를 받지 못한 새 인스턴스에도 요청이 잘못 보내졌고, 이 인스턴스들이 404 를 냈다. 첫 구간에는 클러스터 두 곳에서 메타데이터 서비스가 죽고 있었고 라우팅 서비스 인스턴스 중 일부만 영향을 받았다. 두 번째 구간에는 영향을 받은 클러스터의 서비스로 가는 HTTP 요청이 크게 늘어 라우팅 서비스가 스케일 업했고, 새로 뜬 인스턴스는 모두 404 를 냈다.\n\nRender 는 메타데이터 서비스의 메모리를 늘리고, 기능 플래그를 잠시 다시 켜 효율적인 전송 방식을 되살렸으며, 메타데이터 서비스가 플래그 없이 동작하도록 다시 배포했다. 상태 페이지에는 19:19 UTC 에 조사를 시작했다는 글이 올라갔고, 21:52 UTC 에 사고가 해결로 닫혔다."},"trigger":{"en":"On 5 November 2025 Render cleaned up feature flags that no longer appeared in code, including a flag that the metadata service still read, so the metadata service went back to its older, less memory-efficient way of sending data to the routing service.","ko":"2025-11-05 에 코드에서 더는 참조하지 않는 기능 플래그를 시스템에서 정리했다. 이 플래그에 아직 기대던 메타데이터 서비스가 효율이 낮은 옛 데이터 전송 방식으로 돌아갔다."},"severity":"unknown","symptoms":["high-error-rate"],"timeline":{"detected_after":null,"resolved_after":"1h 55m"},"date_kind":"incident","detection":null,"components":["cloud-load-balancer","service-discovery"],"root_cause":"config-change","remediation":[{"text":{"en":"Increased the memory available to the metadata service, a change later reverted","ko":"메타데이터 서비스가 쓸 수 있는 메모리를 늘렸다. 이 조치는 나중에 되돌렸다."}},{"text":{"en":"Re-enabled the feature flag for the more efficient data transfer between the routing and metadata services for a time; the flag was later removed","ko":"라우팅 서비스와 메타데이터 서비스 사이에 효율적인 데이터 전송을 쓰도록 기능 플래그를 잠시 다시 켰다. 이 플래그는 나중에 지웠다."}},{"text":{"en":"Deployed the metadata service so that it no longer relied on the feature flag","ko":"메타데이터 서비스가 더는 기능 플래그에 기대지 않도록 다시 배포했다."}}],"action_items":[{"text":{"en":"Enhanced monitoring of the metadata service so that this failure mode raises an alert","ko":"메타데이터 서비스의 모니터링을 보강해 이번과 같은 방식의 장애가 나면 알림이 오게 했다."}},{"text":{"en":"Change feature flag practice so that a flag cannot be removed while it is still being evaluated","ko":"아직 서비스가 값을 읽고 있는 기능 플래그는 지울 수 없도록 기능 플래그 관리 관행을 고친다."}},{"text":{"en":"Keep a routing service instance out of traffic if it never loaded state from the metadata service","ko":"메타데이터 서비스에서 상태를 한 번도 받아 오지 못한 라우팅 서비스 인스턴스에는 트래픽이 가지 않게 한다."}}],"contributing":["partial-rollout","no-health-probe","automation-amplified"],"recurrence_of":null,"symptoms_text":{"en":"On 5 November 2025, some web services and static sites hosted on Render in the Oregon region answered part of their requests with 404 responses. Every newly created service in the affected clusters got 404 responses, and updates to existing services were slow to take effect.\n\nThe 404 responses came in two periods. From 10:39 AM to 11:25 AM PST two Render clusters were slightly degraded: one returned a negligible number of 404 responses and the other returned 404 for about 10% of requests. From 11:59 AM to 12:34 PM PST the degradation was larger, and about 50% of all requests to services in the affected cluster received a 404. Free tier services that had just been deployed or were waking from sleep were also hit.\n\nBehind the 404 responses, the metadata service that tells Render's routing service about the user services it routes to was running out of memory and crashing. The routing service is designed to keep serving traffic from its last known state when the metadata service is down, but newly started routing instances that could not load their initial state from the metadata service were still sent requests and answered them with 404. In the second period a large rise in HTTP requests to the affected cluster made the routing service scale up, and every new routing instance returned 404.","ko":"Oregon 리전에 배포한 일부 웹 서비스와 정적 사이트가 간헐적으로 404 응답을 냈다. 장애 동안 이 클러스터들에 새로 만든 서비스는 모두 404 를 받았다.\n\n영향은 두 구간으로 나뉘었다. PST 기준 오전 10시 39분부터 11시 25분까지는 클러스터 두 곳의 서비스가 조금 나빠졌고, 한 곳은 404 가 아주 적었으며 다른 한 곳은 요청의 약 10% 가 404 를 받았다. 오전 11시 59분부터 오후 12시 34분까지는 영향이 더 커져, 영향을 받은 클러스터의 서비스로 가는 전체 요청의 약 50% 가 404 를 받았다.\n\n기존 서비스의 변경 사항은 반영되는 데 오래 걸렸다. 최근에 배포했거나 잠자기 상태에서 깨어나던 무료 등급 서비스도 영향을 받았다."},"updated_at":"2026-11-14T12:34:00.071649Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0346","org_slug":"render"}