Playground and Experiment Failures Due to Missing CORS Header After Upgrade
Last updated: January 28, 2026
This issue is applicable to customers matching these conditions
Plans: Enterprise
Deployments: Hybrid
Use case: Running playgrounds or experiments
Issue
After upgrading Braintrust (to v1.1.29 or later), users may encounter failures when using the Playground or creating/running experiments.
Symptoms include:
Errors in the Braintrust UI such as:
“Failed to run playground”
“TypeError: Failed to fetch”
Browser console errors similar to:
Blocked by CORS policy:
Request header fieldx-bt-project-idis not allowed byAccess-Control-Allow-Headersin preflight response
These errors can result in the Playground or experiment workflows being completely unusable.
Cause
Starting in v1.1.29, Braintrust introduced support for project-level AI secrets.
To support this feature, the Braintrust frontend now sends a new HTTP header:
x-bt-project-idIf a customer’s deployment has a restricted or custom CORS configuration that explicitly lists allowed headers, and this new header is not included, the browser will block requests to the Braintrust data plane.
This most commonly affects:
Hybrid self-hosted deployments
Customers not using the default Braintrust Terraform templates
Deployments with locked-down or manually maintained CORS policies
Resolution
Update your CORS configuration to allow the new header.
Steps
Locate the CORS configuration for your Braintrust data plane (e.g., API Gateway, ALB, Lambda proxy, or equivalent).
Add the following header to the allowed headers list:
x-bt-project-idApply or redeploy the updated configuration.
Reload the Braintrust UI and retry the Playground or experiment workflow.
Once this header is allowed, the errors should immediately resolve.
Notes
Braintrust’s default Terraform deployment templates already include this header, so no action is required if you are using the recommended setup.
This change is triggered by the upgrade itself; once the UI detects support for project-level AI secrets, it will begin sending the header automatically.
Similar CORS errors may also occur in SDK-based or remote evaluation workflows if headers are restricted. Upgrade to the latest SDK to resolve.