CORS policy blocks frontend: symptoms, cause, and the test that catches it
A CORS change blocks the production frontend from calling its own API.
CORS policy blocks frontend is documented by 3 accepted public reports from 3 organisations, 3 of them published in the last 5 years.
- Likelihood: medium (3 public reports in 5 years)
- Impact: medium (3 of 3 reports: availability)
Symptoms
User-visible
- Users opening the application saw errors after a backend deployment changed the CORS headers.[1]
- The core application was marked as a major outage from 12:23 PM to 1:57 PM UTC.[1]
- Workspaces reached through a custom domain could not log in because of a CORS error.[2]
- Login through the default hosted subdomain still worked while custom domains failed.[2]
- The UI failed to render and was inaccessible to all customers.[3]
Root causes
- stage: code A backend deployment changed the CORS headers, so the frontend could no longer communicate with the API.[1]
- stage: third-party An upgraded third-party JavaScript component began sending a baggage header that the cross-origin allowed headers policy did not list, so browsers rejected the UI's API requests.[3]
- stage: release-process A production release shipped a CORS error on custom-domain login because pre-release login testing did not cover custom domains. Build validation testing did not catch the CORS error either.[2]
Public examples
- [1]TrustPoint, 2026-05-06. A TrustPoint backend deployment changed CORS headers, which stopped the frontend from communicating with the API until the CORS configuration was corrected and redeployed. primary Website is down
- [2]Stoplight, 2023-06-09. A Stoplight production release caused a CORS error that blocked login for workspaces accessed through custom domains, and a release rollback resolved it. primary Login issue for workspaces using custom domains - Use *.stoplight.io domain for workspace login
- [3]ChartHop, 2022-11-09. An upgraded third-party JavaScript component began sending a baggage header that ChartHop's cross-origin allowed headers policy did not accept, so browsers rejected API requests from the UI. primary UI failing to load
Test classes that catch it
| Test class | Stage | Limitation | Basis |
|---|---|---|---|
| End-to-end tests | pre-deploy | An end-to-end login that runs only through the default subdomain passes, because the CORS error hit only workspaces reached through custom domains. | cited in [2] |
| Security tests | pre-deploy | A CORS policy check validates the server's allowed origins and headers but not a new request header, such as baggage, that an upgraded browser component starts to send. | by design analysis |
| Synthetic monitoring | post-deploy | An API-level synthetic check passes because direct API requests kept working; only a browser-based check sends the cross-origin request that fails. | by design analysis |
Risk
- Likelihood: medium (3 public reports in 5 years)
- Impact: medium (3 of 3 reports: availability)
| Accepted public reports | 3 |
|---|---|
| Published in the last 5 years | 3 |
| Impact stated: availability | 3 |
Pre-release checklist
- PR-01
- PR-02
- PR-03
- PR-04
- PR-05
- PR-06
- PR-07
First 30 minutes
- FM-01
- FM-02
- FM-03
- FM-04
- FM-05
- FM-06
- FM-07
- FM-08
Download the checklist
What catches this: catalogue entries
Listed because their own documentation or site names end-to-end tests, security tests, synthetic monitoring on the verification date. Alphabetical. Not a recommendation.
Tools whose documentation names these test classes
- Appium e2e source verified 2026-10-21
- Applitools Eyes e2e source verified 2026-10-21
- axe-core e2e source verified 2026-10-21
- behave e2e source verified 2026-10-21
- Burp Suite security source verified 2026-10-21
- Checkly synthetic source verified 2026-10-21 e2e source verified 2026-10-21
- Checkov security source verified 2026-10-21
- CodeceptJS e2e source verified 2026-10-21
- Cucumber e2e source verified 2026-10-21
- Cypress e2e source verified 2026-10-21
- Datadog Synthetic Monitoring synthetic source verified 2026-10-21 e2e source verified 2026-10-21
- Detox e2e source verified 2026-10-21
- Espresso e2e source verified 2026-10-21
- Firebase Test Lab e2e source verified 2026-10-21
- Gitleaks security source verified 2026-10-21
- Grafana Cloud Synthetic Monitoring synthetic source verified 2026-10-21
- Grafana k6 synthetic source verified 2026-10-21
- Karate e2e source verified 2026-10-21
- Katalon Studio e2e source verified 2026-10-21
- Kobiton e2e source verified 2026-10-21
- Maestro e2e source verified 2026-10-21
- Mocha e2e source verified 2026-10-21
- Nightwatch e2e source verified 2026-10-21
- Nuclei security source verified 2026-10-21
- Pa11y e2e source verified 2026-10-21
- Percy e2e source verified 2026-10-21
- Playwright e2e source verified 2026-10-21
- Postman synthetic source verified 2026-10-21
- Puppeteer e2e source verified 2026-10-21
- Robot Framework e2e source verified 2026-10-21
- RSpec e2e source verified 2026-10-21
- Sauce Labs e2e source verified 2026-10-21
- Schemathesis security source verified 2026-10-21
- Selenium e2e source verified 2026-10-21
- Semgrep security source verified 2026-10-21
- Serenity BDD e2e source verified 2026-10-21
- SonarQube security source verified 2026-10-21
- sqlmap security source verified 2026-10-21
- TestCafe e2e source verified 2026-10-21
- TestingBot e2e source verified 2026-10-21
- TestMu AI (formerly LambdaTest) e2e source verified 2026-10-21
- Trivy security source verified 2026-10-21
- TruffleHog security source verified 2026-10-21
- Uptime Kuma synthetic source verified 2026-10-21
- WebdriverIO e2e source verified 2026-10-21
- XCTest e2e source verified 2026-10-21
- Zed Attack Proxy (ZAP) security source verified 2026-10-21
Providers whose site names these test classes
- 2i e2e source verified 2026-10-21
- Abstracta security source verified 2026-10-21 e2e source verified 2026-10-21
- andagon people GmbH e2e source verified 2026-10-21
- Appmatics e2e source verified 2026-10-21
- AQA Masters security source verified 2026-10-21 e2e source verified 2026-10-21
- BreachLock security source verified 2026-10-21
- BugRaptors security source verified 2026-10-21 e2e source verified 2026-10-21
- Cleverix e2e source verified 2026-10-21 security source verified 2026-10-21
- Crestech Software Systems security source verified 2026-10-21 e2e source verified 2026-10-21
- Crowdar e2e source verified 2026-10-21
- CyStack security source verified 2026-10-21
- DeviQA security source verified 2026-10-21 e2e source verified 2026-10-21
- Elinext security source verified 2026-10-21 e2e source verified 2026-10-21
- Exactpro e2e source verified 2026-10-21
- Full Scale e2e source verified 2026-10-21
- Inmetrics e2e source verified 2026-10-21
- Invensis Technologies security source verified 2026-10-21 e2e source verified 2026-10-21
- iScale Solutions e2e source verified 2026-10-21
- Itekako e2e source verified 2026-10-21
- iValuePlus Services security source verified 2026-10-21 e2e source verified 2026-10-21
- Nimble Approach e2e source verified 2026-10-21 security source verified 2026-10-21
- Outpost QA e2e source verified 2026-10-21
- Packetlabs security source verified 2026-10-21
- Pentest Factory GmbH security source verified 2026-10-21
- PLATO e2e source verified 2026-10-21
- Polteq e2e source verified 2026-10-21
- Q-Centric GmbH e2e source verified 2026-10-21 security source verified 2026-10-21
- QA Madness e2e source verified 2026-10-21 security source verified 2026-10-21
- QA Mentor security source verified 2026-10-21 e2e source verified 2026-10-21
- QASource e2e source verified 2026-10-21
- QAwerk security source verified 2026-10-21 e2e source verified 2026-10-21
- Quality House e2e source verified 2026-10-21 security source verified 2026-10-21
- Quality Island security source verified 2026-10-21 e2e source verified 2026-10-21
- QualityKiosk Technologies e2e source verified 2026-10-21
- QualityLogic e2e source verified 2026-10-21
- Qualysec security source verified 2026-10-21
- Saigon Technology security source verified 2026-10-21
- Scalefocus e2e source verified 2026-10-21
- SHIFT ASIA security source verified 2026-10-21 e2e source verified 2026-10-21
- SimplyTest GmbH security source verified 2026-10-21 e2e source verified 2026-10-21
- Sofka Technologies e2e source verified 2026-10-21
- Soflab Technology security source verified 2026-10-21 e2e source verified 2026-10-21
- Software Secured security source verified 2026-10-21
- SQA - Software Quality Assurance S.A. e2e source verified 2026-10-21 security source verified 2026-10-21
- SunTec India e2e source verified 2026-10-21 security source verified 2026-10-21
- T2S Tecnologia e2e source verified 2026-10-21 security source verified 2026-10-21
- TestFort security source verified 2026-10-21 e2e source verified 2026-10-21
- Testhouse e2e source verified 2026-10-21 security source verified 2026-10-21
- Testing IT e2e source verified 2026-10-21
- TestMatick security source verified 2026-10-21 e2e source verified 2026-10-21
- Testrig Technologies security source verified 2026-10-21 e2e source verified 2026-10-21
- Testscenario e2e source verified 2026-10-21
- TestSolutions GmbH security source verified 2026-10-21 e2e source verified 2026-10-21
- THEY.dev e2e source verified 2026-10-21
- tiQtoQ e2e source verified 2026-10-21 security source verified 2026-10-21
- VTEST security source verified 2026-10-21 e2e source verified 2026-10-21
- WebDepend e2e source verified 2026-10-21
- Zoonou e2e source verified 2026-10-21 security source verified 2026-10-21
Only on this page
In report [2], the CORS error reached production with a release at 14:22 CDT. The first sign was a non-urgent support case at 16:41 CDT, 139 minutes later. Broader impact became clear only with the first urgent support case at 23:41 CDT, more than 9 hours after the release. Stack and log monitoring did not catch it. Login through the default subdomain still worked, so only workspaces on custom domains failed.
The follow-ups in report [2] name end-to-end tests: pre-release end-to-end tests for service-auth CORS operations and custom domains, plus custom domains in pre-release QA login testing. They also add production alerts for 500 responses on login URLs and revise out-of-hours incident response. The 139 minutes measure time to the first customer contact, not time to an alert. A CORS fault that affects one class of origin leaves no signal until a check sends requests from that origin.
Related incidents
- SSO login broken Single sign-on fails after an identity provider, certificate or callback URL change.
- CSP blocks required script A Content Security Policy change blocks a script the page needs.
- All sessions invalidated A change to session signing or storage logs every user out at once.
- Permission escalation via role change A role or policy change grants users access to resources they should not see.
- Critical path broken in one browser A core flow fails in one browser or version after a build or polyfill change.
Questions
What causes CORS policy blocks frontend?
One report traces it to a backend deployment that changed CORS headers [1] and one to a production release that broke login on custom domains [2]. A third traces it to a third-party component upgrade that started sending a baggage header the allowed headers policy did not list [3].
What are the symptoms of CORS policy blocks frontend?
The UI shows errors or fails to render, while direct API requests keep working [3]. In one report, only logins through custom domains failed [2].
Why did tests not catch CORS policy blocks frontend?
In report [2], build validation testing did not catch the CORS error, and pre-release login testing did not cover custom domains. The follow-up added pre-release end-to-end tests for service-auth CORS operations and custom domains.
Which test class catches CORS policy blocks frontend, and what does it miss?
End-to-end tests carry the cited label from report [2]; security tests and synthetic monitoring carry the by-design label. An end-to-end login through the default subdomain alone misses a fault that hits only custom domains.
How long did it take to detect CORS policy blocks frontend in the public reports?
Report [2] gives 139 minutes from the 14:22 CDT release to the first non-urgent support case. Broader impact became clear at 23:41 CDT, with the first urgent support case.
Should a team roll back or fix forward when CORS policy blocks frontend happens?
One report rolled back the release [2]. Another corrected the CORS configuration and deployed it, with the outage marked from 12:23 PM to 1:57 PM UTC [1].
Release Incident Playbook (2026). CORS policy blocks frontend: symptoms, cause, and the test that catches it, content version 1.0.0. https://releasefailures.com/incidents/cors-policy-blocks-frontend/. Accessed 2026-10-21.