Fix Python remote parameter list serialization#206
Merged
Joshua Wootonn (joshuawootonn) merged 1 commit intoMay 28, 2026
Conversation
|
Latest downloadable build artifacts for this PR commit
Available artifact names
|
ef30419 to
3eaaac8
Compare
3eaaac8 to
88e0f70
Compare
| if not parameters: | ||
| return {} | ||
| if serialize_remote_eval_parameters_container is not None: | ||
| return serialize_remote_eval_parameters_container(parameters) |
Contributor
Author
There was a problem hiding this comment.
This function was shipped with the release of the Python parameters SDK, So its presence as an import will indicate that we have the right parameter type for serializing into a containerized remote eval value.
john (j13huang)
approved these changes
May 27, 2026
Abhijeet Prasad (AbhiPrasad)
approved these changes
May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
I don't think the python remote eval case was tested in the
btimplementation of parameters. The problem was that we were trying serialize the new internal type (RemoteEvalParameters) I created in v0.10.0 of the python parameters implementation with the old serializer (parameters_to_json_schema). I updated the code to use the new serializer and everything works now. It was already working for the vanilla python SDK.Description
Customer logs showed
/listendpoint forbtrun remote evals was 500'ing when using saved Parameters.I created a reproduction (see demos) and found that
btrun remote evals were also not working for static parameters. Instead of a 500 though, it was just showing a remote eval empty state in the playground.After investigating, I realized that the DTO returned from the static parameter case was different for
btthan it was for the vanilla Python SDK. That helped me realize that this implementation wasn't taking into account the new containerized DTO @ibolmo and I designed back when I was first working on the Parameter's API. Swappingparameters_to_json_schematoserialize_remote_eval_parameters_containerwas the solution, and fixed both cases by returning a DTO the playground understands from the/listendpoint.Demo
Me going through the problem (sorry for the low quality on this video)
CleanShot.2026-05-27.at.14.18.15.mp4
The working thing:
CleanShot.2026-05-27.at.14.28.21.mp4
Old Python SDKs work in and outside of bt:
CleanShot.2026-05-27.at.14.58.09.mp4