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 project is provided during initialization instead of project_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.