{
  "page": {
    "id": "2p66nmmycsj3",
    "name": "Python Infrastructure",
    "url": "https://status.python.org"
  },
  "status": {
    "indicator": "none",
    "description": "All Systems Operational"
  },
  "components": [{"status":"operational","name":"python.org","created_at":"2020-04-14T15:49:23.797Z","updated_at":"2020-04-14T16:24:39.112Z","position":1,"description":"Homepage for the Python language and Python Software Foundation. Hosts downloads, links to more information, and resources for the community.","showcase":false,"start_date":null,"id":"ncnbrqhvsvxk","page_id":"2p66nmmycsj3","group_id":null,"components":["1hfhkd3kvhn9","z5zzdnvb32j5","09dyxnnk3tj3"]},{"status":"operational","name":"PyPI","created_at":"2018-04-18T13:47:26.997Z","updated_at":"2020-04-14T15:49:48.339Z","position":2,"description":null,"showcase":false,"start_date":null,"id":"dhqvcb8lvrh1","page_id":"2p66nmmycsj3","group_id":null,"components":["06hwjcnhlz03","xt7f24hjvspn","yjlyv2k3zz3p","5k8sx11bnccq","frjs3hvgp2bk","p2b1wmgvmwln","nj4jx0hljzvl"]},{"status":"operational","name":"PyPI Hosting Platforms","created_at":"2018-05-31T12:27:39.752Z","updated_at":"2020-04-14T15:50:17.237Z","position":3,"description":null,"showcase":false,"start_date":null,"id":"s5r8b11fdhsg","page_id":"2p66nmmycsj3","group_id":null,"components":["kvxh0bsl5gq5","b2thcq3wccy2","ckpp1ygb6q8z","0zjhw49l92qv","0k1l8cz1lntv"]},{"status":"operational","name":"docs.python.org","created_at":"2020-04-14T15:54:09.789Z","updated_at":"2020-04-14T15:54:41.679Z","position":4,"description":null,"showcase":false,"start_date":null,"id":"9534wxp4wmw6","page_id":"2p66nmmycsj3","group_id":null,"components":["wqrgtyqnjln9","v2hvtpghfrwp"]},{"status":"operational","name":"bugs.python.org","created_at":"2017-02-07T16:26:38.899Z","updated_at":"2026-02-26T20:40:12.360Z","position":5,"description":null,"showcase":false,"start_date":null,"id":"6ybp1pvz8gw1","page_id":"2p66nmmycsj3","group_id":null},{"status":"operational","name":"wiki.python.org","created_at":"2013-06-26T21:16:03.050Z","updated_at":"2026-02-17T14:45:31.000Z","position":6,"description":null,"showcase":false,"start_date":null,"id":"gr4mkt5lcth8","page_id":"2p66nmmycsj3","group_id":null},{"status":"operational","name":"mail.python.org","created_at":"2015-10-23T20:04:35.157Z","updated_at":"2020-04-14T16:17:48.565Z","position":7,"description":null,"showcase":false,"start_date":null,"id":"r8q8ln9rn01p","page_id":"2p66nmmycsj3","group_id":null,"components":["15jrs83fkh40","zqjt8mwzvvyy","zjhpksd4vrp0"]},{"status":"operational","name":"psfmember.org","created_at":"2017-10-05T02:40:02.892Z","updated_at":"2025-03-17T01:05:22.000Z","position":8,"description":null,"showcase":false,"start_date":null,"id":"tm4ft8zp3zhk","page_id":"2p66nmmycsj3","group_id":null},{"status":"operational","name":"us.pycon.org","created_at":"2018-01-13T10:56:45.238Z","updated_at":"2026-02-26T20:40:12.377Z","position":9,"description":null,"showcase":false,"start_date":null,"id":"1h06jblff360","page_id":"2p66nmmycsj3","group_id":null},{"status":"operational","name":"PyPy","created_at":"2020-04-14T16:15:42.514Z","updated_at":"2020-04-14T16:17:48.586Z","position":10,"description":null,"showcase":false,"start_date":null,"id":"m207fbd4yj21","page_id":"2p66nmmycsj3","group_id":null,"components":["fpwfxgsnw7xl"]},{"status":"operational","name":"Content Delivery Network","created_at":"2014-12-15T21:57:30.175Z","updated_at":"2020-04-14T16:17:48.720Z","position":11,"description":"Our CDN (Content Delivery Network) is used to serve many services across the Python infrastructure. Issues here may cause localized or global outages for some services.","showcase":false,"start_date":null,"id":"myn8gh5c4241","page_id":"2p66nmmycsj3","group_id":null,"components":["q0p4457f20q6","9xfmnwl8nk9m","ntl29mdp72bn","dtnlrslrh201","symvw7w7yt5k","qrswjt48y6nt","89b6s57xx1nq","n70z3mymqgqw","k1bmjv2lxw72","ww57y0sqznzm","y7mr29n4fb7x","tzf9xjgvt2f5","hq72t7pj211c","tp3zx66wc5sc","j0qhx6d1dj6k","k7jt8v8hclw0","db7ff5bfykmq","cl2tm84h2b9b","cg3k4kmn3bm0","2v5rwbt9vxfx","18q3k532vryh","xrpmsnhgj9x0","tfq4rgbkgv0q","lcncvvqrclbv","d4qkhbkvhhgv","gnyd0pnhv6ql","lmxn2qhczfxb","sksk8x5xmk2x","wgw9swtq47n4","2ysn6z22jnrz","x4yzlktx7s3l","6tm7f1fnyjbw","tl2q6xvf8gmn","hrm0rkt9z4tm","2yhyfn4p0mwm","lk982psnyynp","0rjm0hqypf1z","mwgq21j43dqz","wq61cc55n5wm","m733wyv5wh3k","z72nkdz1ydym","6tnkysbgwy97","y5yvw1dvm3dv","sxwj5t12gxx1","5w67j6f7z8jh","fwxsbr189wm2","1xbvxn2w10b9","3kp00jymqvwr","x88d6w6sqsg4","sn096fvwslw0","86lf40xpc464","5nk1sqy5gldr","rh1p298tdvqn","dzb6x8yh81z9","r3f0ldyy97kp","cqd1nl03kcbm","fd7tt5t12xxr","fkgpwps42l3g","kwzhngbhm8n2","bpcq80vt9cbk","fhhbf9ds6hwg","gpxqtltnt10v","69tjdqjy3svx","kqdvnljff0ws","6q6ytq67vpsl","z1qjvrr9lm1f","2jxxnzf4d8tb","830x7w1wqzhq","pn63bqm4lmgz","qd85tg3vjytl","yn09bzj9h2yr","sl1yx5fms1gf","699mjnhdqdc1","hzz6126jzx2s","r2bzxrdk71f8","gq0n7776rr5t","3wd9p64jl50h","80nrqrnp5b3j","0dnmvgp6rg8g","jl9snbs3pq0m","3tbd3tcfz0st","nxnc7vrg8676","fv7rtxfx5c01","3gnv4ljw70hy","dnnpzrtd9832","zt7b4pjyp5xw","y13qftsfj4n2","3m16bjl694hl","m2vb18f8q108","57zt6dsc5w32","dfpbzq4jn2d3","z2h3q9wdv2rk","xd6nblf2dmsg","wflxj3tq5g4c","w47z9ft3g7rm","smyn3xv84bc4","fw7mm15m4mg0"]}],
  "incidents": [{"name":"Python Infrastructure Outage","status":"resolved","created_at":"2026-02-26T20:04:21.943Z","updated_at":"2026-02-26T23:27:22.819Z","monitoring_at":null,"resolved_at":"2026-02-26T23:26:50.000Z","impact":"critical","shortlink":"https://stspg.io/7slh65j2y14b","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2026-02-26T20:40:12.000Z","reminder_intervals":null,"id":"r47c43jw19zq","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"The incident has been resolved.","created_at":"2026-02-26T23:26:50.966Z","wants_twitter_update":true,"twitter_updated_at":null,"updated_at":"2026-02-26T23:27:02.708Z","display_at":"2026-02-26T23:26:50.000Z","deliver_notifications":true,"tweet_id":null,"id":"fr7rwg2j9tn2","incident_id":"r47c43jw19zq","custom_tweet":null,"affected_components":[{"code":"6ybp1pvz8gw1","name":"bugs.python.org","old_status":"operational","new_status":"operational"},{"code":"1h06jblff360","name":"us.pycon.org","old_status":"operational","new_status":"operational"},{"code":"1hfhkd3kvhn9","name":"python.org - python.org - CDN","old_status":"operational","new_status":"operational"},{"code":"z5zzdnvb32j5","name":"python.org - python.org - Backends","old_status":"operational","new_status":"operational"},{"code":"09dyxnnk3tj3","name":"python.org - python.org - Downloads Backends","old_status":"operational","new_status":"operational"}]},{"status":"investigating","body":"The root cause has been identified as an erroneous scaling operation that affected some application workloads. All services have been restored and are coming back online. We are monitoring to confirm full recovery.","created_at":"2026-02-26T20:40:12.413Z","wants_twitter_update":true,"twitter_updated_at":null,"updated_at":"2026-02-26T20:42:06.940Z","display_at":"2026-02-26T20:40:12.000Z","deliver_notifications":true,"tweet_id":null,"id":"74b6zm24qtcn","incident_id":"r47c43jw19zq","custom_tweet":null,"affected_components":[{"code":"6ybp1pvz8gw1","name":"bugs.python.org","old_status":"major_outage","new_status":"operational"},{"code":"1h06jblff360","name":"us.pycon.org","old_status":"major_outage","new_status":"operational"},{"code":"1hfhkd3kvhn9","name":"python.org - python.org - CDN","old_status":"major_outage","new_status":"operational"},{"code":"z5zzdnvb32j5","name":"python.org - python.org - Backends","old_status":"major_outage","new_status":"operational"},{"code":"09dyxnnk3tj3","name":"python.org - python.org - Downloads Backends","old_status":"major_outage","new_status":"operational"}]},{"status":"investigating","body":"We are currently investigating this issue","created_at":"2026-02-26T20:04:22.081Z","wants_twitter_update":true,"twitter_updated_at":null,"updated_at":"2026-02-26T20:04:22.081Z","display_at":"2026-02-26T20:04:22.081Z","deliver_notifications":true,"tweet_id":null,"id":"tgg7rc0yfzys","incident_id":"r47c43jw19zq","custom_tweet":null,"affected_components":[{"code":"6ybp1pvz8gw1","name":"bugs.python.org","old_status":"operational","new_status":"major_outage"},{"code":"1h06jblff360","name":"us.pycon.org","old_status":"operational","new_status":"major_outage"},{"code":"1hfhkd3kvhn9","name":"python.org - python.org - CDN","old_status":"operational","new_status":"major_outage"},{"code":"z5zzdnvb32j5","name":"python.org - python.org - Backends","old_status":"major_outage","new_status":"major_outage"},{"code":"09dyxnnk3tj3","name":"python.org - python.org - Downloads Backends","old_status":"operational","new_status":"major_outage"}]}],"postmortem_body":"The incident has been resolved.\n\n## Incident Report: Cluster-wide service outage\n\n**Duration**: ~36 minutes \\(20:04–20:40 UTC\\)\n\n**Impact**: Some PSF-hosted services were unavailable, including [python.org](http://python.org), [us.pycon.org](http://us.pycon.org), PyPI stats, [bugs.python.org](http://bugs.python.org), and related services. \n\nWhat was unaffected was our other cluster that manages [PyPI.org](http://PyPI.org) among other services related to PyPI.\n\n**Root Cause**: During local development of kubernetes workloads locally there was an incorrect context switch to one of our production clusters.\n\nThe scale-down commands ran against the production cluster instead of the local environment, iterating through all deployments and setting them to zero replicas. which created cascading failures.\n\n**Recovery**: Services were restored with the help of Ee Durbin by bringing up infrastructure in dependency order, original replica counts were recovered from Kubernetes event history.\n\nAction items:\n\n* Separate kubeconfig files for production vs local, rather than relying on context switching\n* Research adding admission control or policies to prevent bulk scale-to-zero operations\n* Document the infrastructure dependency chain and recovery runbook for future incidents\n\nJacob Coffee, PSF Infrastructure  Team","postmortem_body_last_updated_at":"2026-02-26T23:27:22.804Z","postmortem_ignored":false,"postmortem_published_at":"2026-02-26T23:27:22.804Z","postmortem_notified_subscribers":true,"postmortem_notified_twitter":true,"components":[{"status":"operational","name":"python.org - CDN","created_at":"2013-06-26T21:14:42.806Z","updated_at":"2026-03-08T15:52:42.000Z","position":1,"description":"Availability of python.org at our CDN edge.","showcase":true,"start_date":null,"id":"1hfhkd3kvhn9","page_id":"2p66nmmycsj3","group_id":"ncnbrqhvsvxk"},{"status":"operational","name":"python.org - Backends","created_at":"2020-04-14T15:50:44.817Z","updated_at":"2026-03-08T16:15:38.000Z","position":2,"description":"Availability of python.org's backend servers.","showcase":true,"start_date":null,"id":"z5zzdnvb32j5","page_id":"2p66nmmycsj3","group_id":"ncnbrqhvsvxk"},{"status":"operational","name":"python.org - Downloads Backends","created_at":"2024-08-26T20:07:50.651Z","updated_at":"2026-02-26T20:40:12.343Z","position":3,"description":"The backends that serve Python download files.","showcase":true,"start_date":"2024-08-26T00:00:00.000Z","id":"09dyxnnk3tj3","page_id":"2p66nmmycsj3","group_id":"ncnbrqhvsvxk"},{"status":"operational","name":"bugs.python.org","created_at":"2017-02-07T16:26:38.899Z","updated_at":"2026-02-26T20:40:12.360Z","position":5,"description":null,"showcase":false,"start_date":null,"id":"6ybp1pvz8gw1","page_id":"2p66nmmycsj3","group_id":null},{"status":"operational","name":"us.pycon.org","created_at":"2018-01-13T10:56:45.238Z","updated_at":"2026-02-26T20:40:12.377Z","position":9,"description":null,"showcase":false,"start_date":null,"id":"1h06jblff360","page_id":"2p66nmmycsj3","group_id":null}]},{"name":"API Traffic experiencing intermittent failures","status":"resolved","created_at":"2026-02-19T22:46:46.414Z","updated_at":"2026-02-19T23:59:15.180Z","monitoring_at":"2026-02-19T22:56:22.736Z","resolved_at":"2026-02-19T23:59:14.881Z","impact":"minor","shortlink":"https://stspg.io/zhcdc6gwlhrs","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2026-02-19T22:46:46.404Z","reminder_intervals":null,"id":"lls76r349nns","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"This incident has been resolved.","created_at":"2026-02-19T23:59:14.881Z","wants_twitter_update":true,"twitter_updated_at":"2026-02-19T23:59:15.172Z","updated_at":"2026-02-19T23:59:15.174Z","display_at":"2026-02-19T23:59:14.881Z","deliver_notifications":true,"tweet_id":2024634918169677926,"id":"hvvz6crty9w4","incident_id":"lls76r349nns","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"operational","new_status":"operational"},{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"operational","new_status":"operational"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"A fix has been implemented and we are monitoring the results.","created_at":"2026-02-19T22:56:22.736Z","wants_twitter_update":true,"twitter_updated_at":"2026-02-19T22:56:23.303Z","updated_at":"2026-02-19T22:56:23.304Z","display_at":"2026-02-19T22:56:22.736Z","deliver_notifications":true,"tweet_id":2024619097720573997,"id":"nc055r2jdqxm","incident_id":"lls76r349nns","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"degraded_performance","new_status":"operational"},{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"degraded_performance","new_status":"operational"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"operational"}]},{"status":"investigating","body":"We are currently investigating this issue.","created_at":"2026-02-19T22:46:46.546Z","wants_twitter_update":true,"twitter_updated_at":"2026-02-19T22:46:47.156Z","updated_at":"2026-02-19T22:46:47.157Z","display_at":"2026-02-19T22:46:46.546Z","deliver_notifications":true,"tweet_id":2024616681319059715,"id":"t9zpkxb90205","incident_id":"lls76r349nns","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"operational","new_status":"degraded_performance"},{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"operational","new_status":"degraded_performance"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"partial_outage"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - General","created_at":"2022-11-11T22:24:00.989Z","updated_at":"2026-02-19T22:56:22.665Z","position":1,"description":null,"showcase":false,"start_date":"2022-11-11T00:00:00.000Z","id":"06hwjcnhlz03","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"},{"status":"operational","name":"pypi.org - CDN","created_at":"2018-03-16T15:17:04.464Z","updated_at":"2026-02-19T22:56:22.684Z","position":2,"description":"Primary PyPI endpoint, serves User Interface and APIs.","showcase":true,"start_date":null,"id":"xt7f24hjvspn","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"},{"status":"operational","name":"pypi.org - Backends","created_at":"2020-04-14T15:15:46.598Z","updated_at":"2026-02-19T22:56:22.702Z","position":3,"description":"The backends that serve pypi.org","showcase":true,"start_date":null,"id":"yjlyv2k3zz3p","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"PyPI Uploads failing","status":"resolved","created_at":"2026-01-07T22:42:33.653Z","updated_at":"2026-01-07T23:00:59.678Z","monitoring_at":"2026-01-07T22:59:24.840Z","resolved_at":"2026-01-07T23:00:57.952Z","impact":"none","shortlink":"https://stspg.io/x0hv9ys48d17","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2026-01-07T22:42:33.644Z","reminder_intervals":null,"id":"rm43qwz0svnf","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"This incident has been resolved.","created_at":"2026-01-07T23:00:57.952Z","wants_twitter_update":true,"twitter_updated_at":"2026-01-07T23:00:59.473Z","updated_at":"2026-01-07T23:00:59.474Z","display_at":"2026-01-07T23:00:57.952Z","deliver_notifications":true,"tweet_id":2009037577597178248,"id":"srmlbdynz4bv","incident_id":"rm43qwz0svnf","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"We identified a database lock causing contention and stopped all upload backends to release all locks and are monitoring for recovery.","created_at":"2026-01-07T22:59:24.840Z","wants_twitter_update":true,"twitter_updated_at":"2026-01-07T22:59:25.180Z","updated_at":"2026-01-07T22:59:25.182Z","display_at":"2026-01-07T22:59:24.840Z","deliver_notifications":true,"tweet_id":2009037182304944388,"id":"wdr5y3910tlw","incident_id":"rm43qwz0svnf","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"investigating","body":"We are investigating why PyPI uploads are failing.","created_at":"2026-01-07T22:42:33.714Z","wants_twitter_update":true,"twitter_updated_at":"2026-01-07T22:42:34.100Z","updated_at":"2026-01-07T22:42:34.101Z","display_at":"2026-01-07T22:42:33.714Z","deliver_notifications":true,"tweet_id":2009032941590954249,"id":"jgcn629ksb4v","incident_id":"rm43qwz0svnf","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - Backends","created_at":"2020-04-14T15:15:46.598Z","updated_at":"2026-02-19T22:56:22.702Z","position":3,"description":"The backends that serve pypi.org","showcase":true,"start_date":null,"id":"yjlyv2k3zz3p","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"Slow updates to PyPI pages/API responses","status":"resolved","created_at":"2025-11-12T15:46:54.533Z","updated_at":"2025-11-12T16:26:16.864Z","monitoring_at":"2025-11-12T15:50:02.083Z","resolved_at":"2025-11-12T16:26:16.252Z","impact":"minor","shortlink":"https://stspg.io/rjh2ytldcr0k","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2025-11-12T15:46:54.521Z","reminder_intervals":null,"id":"0p8n1kx21msn","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"This incident has been resolved.","created_at":"2025-11-12T16:26:16.252Z","wants_twitter_update":true,"twitter_updated_at":"2025-11-12T16:26:16.859Z","updated_at":"2025-11-12T16:26:16.860Z","display_at":"2025-11-12T16:26:16.252Z","deliver_notifications":true,"tweet_id":1988644525246714367,"id":"5kn43dmgfy81","incident_id":"0p8n1kx21msn","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"operational","new_status":"operational"},{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"degraded_performance","new_status":"operational"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"degraded_performance","new_status":"operational"},{"code":"5k8sx11bnccq","name":"PyPI - pypi.org - Email","old_status":"degraded_performance","new_status":"operational"}]},{"status":"monitoring","body":"A fix has been implemented and we are monitoring the results.","created_at":"2025-11-12T15:50:02.083Z","wants_twitter_update":true,"twitter_updated_at":"2025-11-12T15:50:02.625Z","updated_at":"2025-11-12T15:50:02.626Z","display_at":"2025-11-12T15:50:02.083Z","deliver_notifications":true,"tweet_id":1988635405839900707,"id":"11gjnxc3g54v","incident_id":"0p8n1kx21msn","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"operational","new_status":"operational"},{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"degraded_performance","new_status":"degraded_performance"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"degraded_performance"},{"code":"5k8sx11bnccq","name":"PyPI - pypi.org - Email","old_status":"partial_outage","new_status":"degraded_performance"}]},{"status":"investigating","body":"We are currently observing a slowdown in background requests processing for events on PyPI.org\nThis could lead to stale web pages and API responses as the events system is not able to purge the caches.\nOur team is continuing to investigate.","created_at":"2025-11-12T15:46:54.698Z","wants_twitter_update":true,"twitter_updated_at":"2025-11-12T15:46:55.398Z","updated_at":"2025-11-12T15:46:55.400Z","display_at":"2025-11-12T15:46:54.698Z","deliver_notifications":true,"tweet_id":1988634620607492554,"id":"fc9nkh9smkkz","incident_id":"0p8n1kx21msn","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"operational","new_status":"operational"},{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"operational","new_status":"degraded_performance"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"partial_outage"},{"code":"5k8sx11bnccq","name":"PyPI - pypi.org - Email","old_status":"operational","new_status":"partial_outage"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - General","created_at":"2022-11-11T22:24:00.989Z","updated_at":"2026-02-19T22:56:22.665Z","position":1,"description":null,"showcase":false,"start_date":"2022-11-11T00:00:00.000Z","id":"06hwjcnhlz03","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"},{"status":"operational","name":"pypi.org - CDN","created_at":"2018-03-16T15:17:04.464Z","updated_at":"2026-02-19T22:56:22.684Z","position":2,"description":"Primary PyPI endpoint, serves User Interface and APIs.","showcase":true,"start_date":null,"id":"xt7f24hjvspn","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"},{"status":"operational","name":"pypi.org - Backends","created_at":"2020-04-14T15:15:46.598Z","updated_at":"2026-02-19T22:56:22.702Z","position":3,"description":"The backends that serve pypi.org","showcase":true,"start_date":null,"id":"yjlyv2k3zz3p","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"},{"status":"operational","name":"pypi.org - Email","created_at":"2022-06-27T14:19:00.478Z","updated_at":"2025-11-12T16:26:16.218Z","position":4,"description":"PyPI's email sending functionality including notifications, email validation, password resets, etc.","showcase":false,"start_date":"2022-06-27T00:00:00.000Z","id":"5k8sx11bnccq","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"PyPI Search Index Degraded","status":"resolved","created_at":"2025-07-29T14:41:08.029Z","updated_at":"2025-07-29T19:58:33.005Z","monitoring_at":"2025-07-29T14:41:08.092Z","resolved_at":"2025-07-29T19:58:32.694Z","impact":"minor","shortlink":"https://stspg.io/9lpbzt94083g","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":"minor","scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2025-07-29T14:41:08.018Z","reminder_intervals":null,"id":"tyvdmttyy309","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"This incident has been resolved.","created_at":"2025-07-29T19:58:32.694Z","wants_twitter_update":true,"twitter_updated_at":"2025-07-29T19:58:33.001Z","updated_at":"2025-07-29T19:58:33.002Z","display_at":"2025-07-29T19:58:32.694Z","deliver_notifications":true,"tweet_id":1950284830891257882,"id":"6gb0trt7sgj4","incident_id":"tyvdmttyy309","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"The PyPI search index has degraded and is not returning results.\nA reindexing job has begun, and results will be available once it completes.","created_at":"2025-07-29T14:41:08.092Z","wants_twitter_update":true,"twitter_updated_at":"2025-07-29T14:41:08.469Z","updated_at":"2025-07-29T14:41:08.470Z","display_at":"2025-07-29T14:41:08.092Z","deliver_notifications":true,"tweet_id":1950204952238051747,"id":"94kd2jbgx53j","incident_id":"tyvdmttyy309","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - Backends","created_at":"2020-04-14T15:15:46.598Z","updated_at":"2026-02-19T22:56:22.702Z","position":3,"description":"The backends that serve pypi.org","showcase":true,"start_date":null,"id":"yjlyv2k3zz3p","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"PyPI Database Upgrades","status":"completed","created_at":"2025-06-11T18:50:58.644Z","updated_at":"2025-06-11T19:23:03.124Z","monitoring_at":"2025-06-11T19:16:45.531Z","resolved_at":"2025-06-11T19:23:02.719Z","impact":"maintenance","shortlink":"https://stspg.io/04f200nt81mz","scheduled_for":"2025-06-11T19:00:00.000Z","scheduled_until":"2025-06-11T21:00:00.000Z","scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":true,"scheduled_auto_completed":true,"metadata":{},"started_at":"2025-06-11T18:50:58.635Z","reminder_intervals":null,"id":"9m00vmgfty2g","page_id":"2p66nmmycsj3","incident_updates":[{"status":"completed","body":"This maintenance is complete! All metrics have returned to baseline.","created_at":"2025-06-11T19:23:02.719Z","wants_twitter_update":true,"twitter_updated_at":"2025-06-11T19:23:03.118Z","updated_at":"2025-06-11T19:23:03.120Z","display_at":"2025-06-11T19:23:02.719Z","deliver_notifications":true,"tweet_id":1932881279990829199,"id":"jlbq1jhnn3mt","incident_id":"9m00vmgfty2g","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"under_maintenance","new_status":"operational"}]},{"status":"verifying","body":"All database tasks are complete and we are now monitoring for stability post-upgrade. Services should be back online in full.","created_at":"2025-06-11T19:16:45.531Z","wants_twitter_update":true,"twitter_updated_at":"2025-06-11T19:16:45.864Z","updated_at":"2025-06-11T19:16:45.866Z","display_at":"2025-06-11T19:16:45.531Z","deliver_notifications":true,"tweet_id":1932879697496682870,"id":"6j6ht6kqnqgs","incident_id":"9m00vmgfty2g","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"under_maintenance","new_status":"under_maintenance"}]},{"status":"in_progress","body":"The core upgrade is complete, we are awaiting the completion of post-upgrade statistics updates which are taking longer than anticipated.","created_at":"2025-06-11T19:10:57.174Z","wants_twitter_update":true,"twitter_updated_at":"2025-06-11T19:10:57.503Z","updated_at":"2025-06-11T19:10:57.504Z","display_at":"2025-06-11T19:10:57.174Z","deliver_notifications":true,"tweet_id":1932878236364779874,"id":"fcpkvv6m2hby","incident_id":"9m00vmgfty2g","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"under_maintenance","new_status":"under_maintenance"}]},{"status":"in_progress","body":"Scheduled maintenance is currently in progress. We will provide updates as necessary.","created_at":"2025-06-11T19:00:22.158Z","wants_twitter_update":true,"twitter_updated_at":"2025-06-11T19:00:22.807Z","updated_at":"2025-06-11T19:00:22.808Z","display_at":"2025-06-11T19:00:22.158Z","deliver_notifications":true,"tweet_id":1932875574273585255,"id":"8x4dgpdrczz2","incident_id":"9m00vmgfty2g","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"operational","new_status":"under_maintenance"}]},{"status":"scheduled","body":"PyPI will be undergoing maintenance for a major version database upgrade. We anticipate up to 5-10 minutes of disruption when the cut-over occurs.","created_at":"2025-06-11T18:50:58.713Z","wants_twitter_update":true,"twitter_updated_at":"2025-06-11T18:50:59.194Z","updated_at":"2025-06-11T18:50:59.195Z","display_at":"2025-06-11T18:50:58.713Z","deliver_notifications":true,"tweet_id":1932873210414182631,"id":"0kfjgwl4ycmg","incident_id":"9m00vmgfty2g","custom_tweet":null,"affected_components":[{"code":"06hwjcnhlz03","name":"PyPI - pypi.org - General","old_status":"operational","new_status":"operational"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - General","created_at":"2022-11-11T22:24:00.989Z","updated_at":"2026-02-19T22:56:22.665Z","position":1,"description":null,"showcase":false,"start_date":"2022-11-11T00:00:00.000Z","id":"06hwjcnhlz03","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"PyPI Partial Outage","status":"resolved","created_at":"2025-05-24T22:57:13.153Z","updated_at":"2025-05-27T12:53:04.786Z","monitoring_at":"2025-05-24T23:54:22.000Z","resolved_at":"2025-05-27T12:53:04.273Z","impact":"major","shortlink":"https://stspg.io/dcxkgkkx6sj8","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2025-05-24T23:37:17.000Z","reminder_intervals":null,"id":"wtqw8mxcg3j1","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"We have not seen a return of the traffic that caused this incident after removing the temporary block. We will open a new incident if we need to take action again.","created_at":"2025-05-27T12:53:04.273Z","wants_twitter_update":true,"twitter_updated_at":"2025-05-27T12:53:04.780Z","updated_at":"2025-05-27T12:53:04.782Z","display_at":"2025-05-27T12:53:04.273Z","deliver_notifications":true,"tweet_id":1927347321542459412,"id":"52xs9ct7nxrz","incident_id":"wtqw8mxcg3j1","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"We have removed the temporary block and are continuing to monitor.","created_at":"2025-05-25T12:16:50.786Z","wants_twitter_update":true,"twitter_updated_at":"2025-05-25T12:16:51.195Z","updated_at":"2025-05-25T12:16:51.197Z","display_at":"2025-05-25T12:16:50.786Z","deliver_notifications":true,"tweet_id":1926613429533512175,"id":"6vjmbws9fmq1","incident_id":"wtqw8mxcg3j1","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"Our block is in place and systems are stable, but we are not satisfied with having to block such a generic user-agent. If you are aware of a system that began a mass crawl of PyPI's JSON release endpoints starting at around 22:05 UTC 2025-05-25, please contact admin@pypi.org.","created_at":"2025-05-24T23:54:22.240Z","wants_twitter_update":true,"twitter_updated_at":"2025-05-24T23:54:22.761Z","updated_at":"2025-05-24T23:54:36.300Z","display_at":"2025-05-24T23:54:22.000Z","deliver_notifications":true,"tweet_id":1926426579946647579,"id":"xth8409lp3tb","incident_id":"wtqw8mxcg3j1","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"operational"}]},{"status":"identified","body":"We have identified a flood of requests from a cluster using the `python-requests/2.32.3` User-Agent, and attempting to hit all JSON project/releasese en masse.\n\nThis causes excessive cache misses, which are overwhelming our backends. A temporary block has been put in place.","created_at":"2025-05-24T23:37:17.711Z","wants_twitter_update":true,"twitter_updated_at":"2025-05-24T23:37:18.249Z","updated_at":"2025-05-24T23:49:11.714Z","display_at":"2025-05-24T23:37:17.000Z","deliver_notifications":true,"tweet_id":1926422282710200587,"id":"8kpdygs4263r","incident_id":"wtqw8mxcg3j1","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"partial_outage"}]},{"status":"identified","body":"We have identified a large increase in CDN cache misses causing excess load on our backends. We are working to determine the reason for this increase.","created_at":"2025-05-24T23:11:08.287Z","wants_twitter_update":true,"twitter_updated_at":"2025-05-24T23:11:08.697Z","updated_at":"2025-05-24T23:11:08.698Z","display_at":"2025-05-24T23:11:08.287Z","deliver_notifications":true,"tweet_id":1926415699578077260,"id":"l072759dc9f2","incident_id":"wtqw8mxcg3j1","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"partial_outage"}]},{"status":"investigating","body":"We are working to investigate a partial outage in the PyPI backends.","created_at":"2025-05-24T22:57:13.267Z","wants_twitter_update":true,"twitter_updated_at":"2025-05-24T22:57:14.988Z","updated_at":"2025-05-24T22:57:14.989Z","display_at":"2025-05-24T22:57:13.267Z","deliver_notifications":true,"tweet_id":1926412202350723416,"id":"4fjhj94p5ydc","incident_id":"wtqw8mxcg3j1","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"partial_outage"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - Backends","created_at":"2020-04-14T15:15:46.598Z","updated_at":"2026-02-19T22:56:22.702Z","position":3,"description":"The backends that serve pypi.org","showcase":true,"start_date":null,"id":"yjlyv2k3zz3p","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"PyPI Elevated Error Rates","status":"resolved","created_at":"2025-04-24T12:02:21.153Z","updated_at":"2025-04-24T12:18:39.806Z","monitoring_at":"2025-04-24T12:09:31.665Z","resolved_at":"2025-04-24T12:18:39.488Z","impact":"major","shortlink":"https://stspg.io/l0d6qrw7xfpp","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2025-04-24T12:02:21.144Z","reminder_intervals":null,"id":"jjvcvksrjc53","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"This incident is resolved. We're going to do some further investigation to understand what led to the lock contention.","created_at":"2025-04-24T12:18:39.488Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-24T12:18:39.800Z","updated_at":"2025-04-24T12:18:39.801Z","display_at":"2025-04-24T12:18:39.488Z","deliver_notifications":true,"tweet_id":1915379861436477486,"id":"77jtgncmk398","incident_id":"jjvcvksrjc53","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"The locking process has been terminated and we're monitoring as things recover.","created_at":"2025-04-24T12:09:31.665Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-24T12:09:32.092Z","updated_at":"2025-04-24T12:09:32.093Z","display_at":"2025-04-24T12:09:31.665Z","deliver_notifications":true,"tweet_id":1915377564211970050,"id":"t2l9hbdjy2ls","incident_id":"jjvcvksrjc53","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"operational"}]},{"status":"identified","body":"We've identified an issue with database contention arising from locking.","created_at":"2025-04-24T12:09:16.745Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-24T12:09:17.048Z","updated_at":"2025-04-24T12:09:17.049Z","display_at":"2025-04-24T12:09:16.745Z","deliver_notifications":true,"tweet_id":1915377501104484357,"id":"jwnx9kr41vk6","incident_id":"jjvcvksrjc53","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"partial_outage"}]},{"status":"investigating","body":"We're investigating elevated error rates for pypi.org","created_at":"2025-04-24T12:02:21.248Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-24T12:02:21.650Z","updated_at":"2025-04-24T12:02:21.651Z","display_at":"2025-04-24T12:02:21.248Z","deliver_notifications":true,"tweet_id":1915375758861824289,"id":"jcvqzl2mpj4y","incident_id":"jjvcvksrjc53","custom_tweet":null,"affected_components":[{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"partial_outage"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - Backends","created_at":"2020-04-14T15:15:46.598Z","updated_at":"2026-02-19T22:56:22.702Z","position":3,"description":"The backends that serve pypi.org","showcase":true,"start_date":null,"id":"yjlyv2k3zz3p","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"PyPI Simple and JSON API Outage","status":"resolved","created_at":"2025-04-08T10:23:41.854Z","updated_at":"2025-04-08T11:00:37.717Z","monitoring_at":"2025-04-08T10:26:22.530Z","resolved_at":"2025-04-08T11:00:37.392Z","impact":"major","shortlink":"https://stspg.io/tg3c4y48m0yg","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2025-04-08T10:23:41.846Z","reminder_intervals":null,"id":"tg6dd9n4nrrx","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"This incident has been resolved.","created_at":"2025-04-08T11:00:37.392Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-08T11:00:37.711Z","updated_at":"2025-04-08T11:00:37.712Z","display_at":"2025-04-08T11:00:37.392Z","deliver_notifications":true,"tweet_id":1909562017582911931,"id":"m4k0frx77stc","incident_id":"tg6dd9n4nrrx","custom_tweet":null,"affected_components":[{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"operational","new_status":"operational"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"Errors have subsided, and we are monitoring as things continue to recover.","created_at":"2025-04-08T10:31:27.525Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-08T10:31:27.812Z","updated_at":"2025-04-08T10:31:27.813Z","display_at":"2025-04-08T10:31:27.525Z","deliver_notifications":true,"tweet_id":1909554677978743159,"id":"pvf4yghznf80","incident_id":"tg6dd9n4nrrx","custom_tweet":null,"affected_components":[{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"operational","new_status":"operational"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"We've increased capacity in the worker pools that service /simple and /json and are monitoring as things recover.","created_at":"2025-04-08T10:26:22.530Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-08T10:26:24.558Z","updated_at":"2025-04-08T10:26:24.560Z","display_at":"2025-04-08T10:26:22.530Z","deliver_notifications":true,"tweet_id":1909553405267525735,"id":"r8fbqcd7gd0h","incident_id":"tg6dd9n4nrrx","custom_tweet":null,"affected_components":[{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"partial_outage","new_status":"operational"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"partial_outage","new_status":"operational"}]},{"status":"identified","body":"We are working to resolve an outage impacting our /simple and /json apis.","created_at":"2025-04-08T10:23:41.964Z","wants_twitter_update":true,"twitter_updated_at":"2025-04-08T10:23:42.463Z","updated_at":"2025-04-08T10:23:42.464Z","display_at":"2025-04-08T10:23:41.964Z","deliver_notifications":true,"tweet_id":1909552726197088537,"id":"pgm0kj2q20xs","incident_id":"tg6dd9n4nrrx","custom_tweet":null,"affected_components":[{"code":"xt7f24hjvspn","name":"PyPI - pypi.org - CDN","old_status":"operational","new_status":"partial_outage"},{"code":"yjlyv2k3zz3p","name":"PyPI - pypi.org - Backends","old_status":"operational","new_status":"partial_outage"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"pypi.org - CDN","created_at":"2018-03-16T15:17:04.464Z","updated_at":"2026-02-19T22:56:22.684Z","position":2,"description":"Primary PyPI endpoint, serves User Interface and APIs.","showcase":true,"start_date":null,"id":"xt7f24hjvspn","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"},{"status":"operational","name":"pypi.org - Backends","created_at":"2020-04-14T15:15:46.598Z","updated_at":"2026-02-19T22:56:22.702Z","position":3,"description":"The backends that serve pypi.org","showcase":true,"start_date":null,"id":"yjlyv2k3zz3p","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]},{"name":"Download file corruption","status":"resolved","created_at":"2025-03-11T12:13:54.461Z","updated_at":"2025-03-11T13:39:48.093Z","monitoring_at":"2025-03-11T12:50:58.764Z","resolved_at":"2025-03-11T13:39:47.671Z","impact":"major","shortlink":"https://stspg.io/lrc18mtdmv8t","scheduled_for":null,"scheduled_until":null,"scheduled_remind_prior":false,"scheduled_reminded_at":null,"impact_override":null,"scheduled_auto_in_progress":false,"scheduled_auto_completed":false,"metadata":{},"started_at":"2025-03-11T12:13:54.451Z","reminder_intervals":"[]","id":"2zf08fkp0nd1","page_id":"2p66nmmycsj3","incident_updates":[{"status":"resolved","body":"This incident has been resolved.","created_at":"2025-03-11T13:39:47.671Z","wants_twitter_update":true,"twitter_updated_at":"2025-03-11T13:39:48.088Z","updated_at":"2025-03-11T13:39:48.089Z","display_at":"2025-03-11T13:39:47.671Z","deliver_notifications":true,"tweet_id":1899455214266331607,"id":"bv8qp94qr9yz","incident_id":"2zf08fkp0nd1","custom_tweet":null,"affected_components":[{"code":"frjs3hvgp2bk","name":"PyPI - files.pythonhosted.org - Files","old_status":"operational","new_status":"operational"}]},{"status":"monitoring","body":"We are continuing to monitor for any further issues.","created_at":"2025-03-11T13:05:37.918Z","wants_twitter_update":true,"twitter_updated_at":"2025-03-11T13:05:38.453Z","updated_at":"2025-03-11T13:05:38.454Z","display_at":"2025-03-11T13:05:37.918Z","deliver_notifications":true,"tweet_id":1899446617708929499,"id":"mgv9sr39m2zk","incident_id":"2zf08fkp0nd1","custom_tweet":null,"affected_components":[{"code":"frjs3hvgp2bk","name":"PyPI - files.pythonhosted.org - Files","old_status":"partial_outage","new_status":"operational"}]},{"status":"monitoring","body":"Our CDN provider has reported that the node in question has been removed from service. We are monitoring for continued reports.","created_at":"2025-03-11T12:50:58.764Z","wants_twitter_update":true,"twitter_updated_at":"2025-03-11T12:50:59.115Z","updated_at":"2025-03-11T12:50:59.116Z","display_at":"2025-03-11T12:50:58.764Z","deliver_notifications":true,"tweet_id":1899442929401479458,"id":"g16ccstwxylr","incident_id":"2zf08fkp0nd1","custom_tweet":null,"affected_components":[{"code":"frjs3hvgp2bk","name":"PyPI - files.pythonhosted.org - Files","old_status":"partial_outage","new_status":"partial_outage"}]},{"status":"identified","body":"This issue appears to be isolated to a single edge node in our CDN provider's network. They have validated the issue and are working to resolve.","created_at":"2025-03-11T12:47:27.888Z","wants_twitter_update":true,"twitter_updated_at":"2025-03-11T12:47:28.231Z","updated_at":"2025-03-11T12:47:28.232Z","display_at":"2025-03-11T12:47:27.888Z","deliver_notifications":true,"tweet_id":1899442044839571542,"id":"vp8vx9gz9jkt","incident_id":"2zf08fkp0nd1","custom_tweet":null,"affected_components":[{"code":"frjs3hvgp2bk","name":"PyPI - files.pythonhosted.org - Files","old_status":"partial_outage","new_status":"partial_outage"}]},{"status":"investigating","body":"We are investigating issues with files from files.pythonhosted.org being served with corrupted data. A support ticket has been opened with our CDN provider and we are awaiting their response.","created_at":"2025-03-11T12:13:54.551Z","wants_twitter_update":true,"twitter_updated_at":"2025-03-11T12:13:55.009Z","updated_at":"2025-03-11T12:13:55.011Z","display_at":"2025-03-11T12:13:54.551Z","deliver_notifications":true,"tweet_id":1899433600787112360,"id":"qzhkqb3lqwkp","incident_id":"2zf08fkp0nd1","custom_tweet":null,"affected_components":[{"code":"frjs3hvgp2bk","name":"PyPI - files.pythonhosted.org - Files","old_status":"operational","new_status":"partial_outage"}]}],"postmortem_body":null,"postmortem_body_last_updated_at":null,"postmortem_ignored":false,"postmortem_published_at":null,"postmortem_notified_subscribers":false,"postmortem_notified_twitter":false,"components":[{"status":"operational","name":"files.pythonhosted.org - Files","created_at":"2018-04-18T13:48:07.991Z","updated_at":"2025-03-11T13:05:37.853Z","position":5,"description":"Serves Files hosted on PyPI from our Object Store backend.","showcase":true,"start_date":null,"id":"frjs3hvgp2bk","page_id":"2p66nmmycsj3","group_id":"dhqvcb8lvrh1"}]}]
}
