aaif-goose/goose · error
No message in API response. This may indicate a quota limit
Error message
No message in API response. This may indicate a quota limit or other restriction.
What it means
Error "No message in API response. This may indicate a quota limit or other restriction." thrown in aaif-goose/goose.
Source
Thrown at crates/goose-provider-types/src/formats/openai.rs:701
pub fn response_to_message(response: &Value) -> anyhow::Result<Message> {
let output_token_limit_reached = response
.pointer("/choices/0/finish_reason")
.and_then(Value::as_str)
== Some("length");
let Some(original) = response
.get("choices")
.and_then(|c| c.get(0))
.and_then(|m| m.get("message"))
else {
if let Some(error) = response.get("error") {
let error_message = error
.get("message")
.and_then(|m| m.as_str())
.unwrap_or("Unknown error");
return Err(anyhow::anyhow!("API error: {}", error_message));
}
return Err(anyhow::anyhow!(
"No message in API response. This may indicate a quota limit or other restriction."
));
};
let mut content = Vec::new();
// Capture reasoning content if present (DeepSeek uses "reasoning_content", vLLM uses "reasoning")
let reasoning_value = original
.get("reasoning_content")
.or_else(|| original.get("reasoning"));
let mut has_structured_thinking = false;
if let Some(reasoning_content) = reasoning_value {
if let Some(reasoning_str) = reasoning_content.as_str() {
if !reasoning_str.is_empty() {
has_structured_thinking = true;
content.push(MessageContentBlock::thinking(reasoning_str, ""));
}
}View on GitHub (pinned to 3810898a74)
When it happens
Trigger: Thrown at crates/goose-provider-types/src/formats/openai.rs:701 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of aaif-goose/goose@3810898a74 (2026-08-16).
Data as JSON: /api/errors/8d2c1175b58510a7.
Report an issue: GitHub.