diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index 49d9c03c..72a13750 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -2816,15 +2816,9 @@ async fn drain_to_completed( response_id: _, token_usage, }) => { - let token_usage = match token_usage { - Some(usage) => usage, - None => { - return Err(CodexErr::Stream( - "token_usage was None in ResponseEvent::Completed".into(), - None, - )); - } - }; + // some providers don't return token usage, so we default + // TODO: consider approximate token usage + let token_usage = token_usage.unwrap_or_default(); sess.tx_event .send(Event { id: sub_id.to_string(), @@ -2832,6 +2826,7 @@ async fn drain_to_completed( }) .await .ok(); + return Ok(()); } Ok(_) => continue,