SDK recreating new project with old name after renaming
Last updated: January 28, 2026
This issue is applicable to customers matching these conditions
Plans: All
Deployments: All
Issue
After renaming a Braintrust project, a new project with the old name may be automatically recreated depending on your SDK implementation.
Cause
This behavior is expected and is due to how Braintrust’s SDK initializes projects:
Braintrust SDKs identify projects by name when
projectis provided during initialization instead ofproject_id(or equivalent).When you call
braintrust.init()(or equivalent) with a project name, Braintrust automatically creates a project if one does not already exist with that exact name.If your environment variable or application code still references the old project name:
The SDK looks for a project with that name.
Since it does not exist, Braintrust creates a new project with the old name.
All subsequent logs are sent to this newly created project.
Resolutions
If you do not intend to create a new project, you must reference the existing project.
Option 1: Update the project name everywhere
Update any environment variables, config files, or code to use the new project name after renaming.
Restart services to ensure the updated value is picked up.
Option 2 (Recommended): Use project ID instead of name
Using a project ID avoids this issue entirely, since IDs do not change when a project is renamed.
Python:
import braintrust
# Using project NAME (auto-creates if doesn't exist)
braintrust.init(project="my-project")
braintrust.init_dataset(project="my-project", name="My Dataset")
# Using project ID (safer for renamed projects)
braintrust.init(project_id="abc123-uuid-here")
braintrust.init_dataset(project_id="abc123-uuid-here", name="My Dataset")TypeScript:
import braintrust from "braintrust";
// Using project NAME (auto-creates if doesn't exist)
braintrust.init({ project: "my-project", experiment: "exp-name" });
braintrust.initDataset({ project: "my-project" });
// Using project ID (safer for renamed projects)
braintrust.init({ projectId: "abc123-uuid-here", experiment: "exp-name" });
braintrust.initDataset({ projectId: "abc123-uuid-here" });Key difference: Using project_id/projectId ensures you always reference the same project even after renaming, and won't accidentally create a new project.
You can find the project ID in the Braintrust UI (Project Settings) or via the Projects API.