Skip to main content
Applies to:
  • Plan -
  • Deployment -

Summary

Issue: Traces are deleted according to the project retention window even when metadata like evalRun: true is present. Metadata fields cannot exempt individual traces from deletion. Cause: Retention is enforced by creation timestamp at the project and object type level, not by tags or metadata values. Resolution: For traces that need longer retention, route them at ingest time to a separate project configured with a longer retention window, or adjust retention for the whole project/object type.

Resolution steps

If you are on Enterprise and want to extend retention for all traces in a project

Step 1: Identify the object type

Determine whether your traces are stored as logs, experiments, or dataset rows. Retention is configured separately for each type.

Step 2: Adjust the project retention window

In your project settings, raise or remove the retention limit for the relevant object type. On Enterprise, there is no enforced maximum — the 14-day window is a project-level configuration.

If you only want to retain a subset of traces (e.g., eval_run: true)

Step 1: Create a dedicated project

Create a separate Braintrust project with a longer or unlimited retention window.

Step 2: Route matching traces at ingest time

In your logging code, inspect the metadata before logging and send matching traces to the dedicated project.
if metadata.get("eval_run"):
    logger = braintrust.init_logger(project="eval-runs-retained")
else:
    logger = braintrust.init_logger(project="default-project")

Step 3: Verify retention settings on the new project

Confirm the dedicated project’s log retention window is set to your desired duration or unlimited before relying on it for storage.