Fix JSON serialization error when creating flow runs #7385
Merged
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.
Closes #6962
flow.serialize_parameters
is called when the client creates a flow run. This can return invalid JSON in certain cases, such as when serializing dataframes.pd.DataFrame({'col':['1']})
->{"col": {0: "1"}}
.This resulted in an error when calling
FlowRunCreate.dict(json_compatible=True)
.This pull request modifies the
FlowRunCreate
to useorjson.dumps
withOPT_NON_STR_KEYS
enabled to handle these cases. The code is modified at the child-level because allowing non-string keys has performance implications, so this limits the hit to creating flow runs.I tried a very simple flow with print statements to check that this is behaving as expected in aggregate (the combination of parameter serialization + flow run serialization), but I'd like a sanity check from @madkinsz to make sure that I'm not missing something.
Example
Checklist
<link to issue>
"fix
,feature
,enhancement