-
Notifications
You must be signed in to change notification settings - Fork 288
Open
Description
Hi,
let's say i want to create a new request where my_prev_response_id
is an Option
, so i don't need to handle input myself.
let request = CreateResponseArgs::default().previous_response_id(my_prev_response_id).build()?;
From what i see in the documentation .previous_response_id()
would normally handle Options, but seems to implement a bound requiring it to be a String.
#[serde(skip_serializing_if = "Option::is_none")]
pub previous_response_id: Option<String>,
.previous_response_id(my_prev_response_id)
| -------------------- ^^^^^^^^^^^^^^^^^^^^ the trait `From<std::option::Option<std::string::String>>` is not implemented for `std::string::String`
| |
| required by a bound introduced by this call
If implement logic to turn a None
into an empty string, the API fails since the value must be filled with a valid id if provided.
2025-07-24T11:54:15.027613Z ERROR ai_server::handlers: Failed to get AI response:
Error creating response:
ApiError(ApiError {
message: "Invalid 'previous_response_id': ''. Expected an ID that contains letters, numbers, underscores, or dashes, but this value contained additional characters.",
type: Some("invalid_request_error"),
param: Some("previous_response_id"),
code: Some("invalid_value") })
Can you remove the bound so we can let serde handle the value and correctly remove it if its none?
Thank you for your consideration!
Metadata
Metadata
Assignees
Labels
No labels