Skip to content

Commit 90e396e

Browse files
dpguthrieclaude
andcommitted
Document that bundled code functions are skipped
Add an explicit README callout (Resource Types) explaining that code functions backed by a compiled bundle — e.g. code-based scorers/tools/tasks pushed via `braintrust push` or an eval — cannot be migrated (the API only exposes a bundle reference, not the code, and there's no re-upload path), so they are skipped and recorded in migration_report.json with skip_reason="code_bundle_not_migratable". Users should re-push them manually. Inline code functions and all other function types migrate normally. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent abef859 commit 90e396e

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ The following resource types are supported:
504504
- **Datasets**
505505
- **Project Tags**
506506
- **Span Iframes**
507-
- **Functions**
507+
- **Functions** (⚠️ bundled code functions are **skipped** — see note below)
508508
- **Prompts**
509509
- **Project Scores**
510510
- **Experiments**
@@ -514,6 +514,24 @@ The following resource types are supported:
514514

515515
> **Note:** Agents and users are not supported for migration.
516516
517+
> **⚠️ Code functions with bundled code are skipped (re-push them manually).**
518+
> A code function created by *pushing* code — e.g. a code-based **scorer**, tool,
519+
> or task deployed via `braintrust push` or an eval — ships a compiled **bundle**
520+
> that is produced by the push/eval build pipeline and stored separately. The API
521+
> only exposes a *reference* to that bundle (a `bundle_id` and a short `preview`),
522+
> not the code itself, and there is no way to re-upload it into the destination
523+
> org — so these functions **cannot be recreated by the migration** and would
524+
> otherwise land broken (a dangling `bundle_id` that can't be invoked).
525+
>
526+
> The migration therefore **skips** them. Each skipped function is logged with its
527+
> name/slug and recorded in `migration_report.json` under
528+
> `detailed_breakdown.skipped` with `skip_reason="code_bundle_not_migratable"`, so
529+
> you have an exact list. **After migrating, re-push these functions to the
530+
> destination manually** (e.g. `braintrust push`).
531+
>
532+
> *Inline* code functions (whose source is stored directly on the function) and
533+
> all other function types migrate normally.
534+
517535
## Troubleshooting
518536

519537
### Common Issues

0 commit comments

Comments
 (0)