{"record":{"id":"ccfcd38c7cae5e76","repo":"BoundaryML/baml","slug":"no-response","errorCode":null,"errorMessage":"No response","messagePattern":"No response","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"engine/baml-runtime/src/types/response.rs","lineNumber":492,"sourceCode":"                            } else {\n                                TestStatus::Pass\n                            }\n                        }\n                    }\n                } else {\n                    let err = parsed.as_ref().unwrap_err();\n                    match err.downcast_ref::<crate::errors::ExposedError>() {\n                        Some(ExposedError::FinishReasonError { .. }) => {\n                            TestStatus::Fail(TestFailReason::TestFinishReasonFailed(err))\n                        }\n                        _ => TestStatus::Fail(TestFailReason::TestParseFailure(err)),\n                    }\n                }\n            } else {\n                TestStatus::Fail(TestFailReason::TestLLMFailure(func_res.llm_response()))\n            }\n        } else {\n            TestStatus::Fail(TestFailReason::TestUnspecified(anyhow::anyhow!(\n                \"No response\"\n            )))\n        }\n    }\n}\n\nimpl std::fmt::Display for TestFailReason<'_> {\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        match self {\n            Self::TestUnspecified(e) => write!(f, \"{e}\"),\n            Self::TestLLMFailure(r) => write!(f, \"{r}\"),\n            Self::TestParseFailure(e) => write!(f, \"{e}\"),\n            Self::TestFinishReasonFailed(e) => write!(f, \"{e}\"),\n            Self::TestConstraintsFailure {\n                checks,\n                failed_assert,\n            } => {\n                for (check, pass) in checks {","sourceCodeStart":474,"sourceCodeEnd":510,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/engine/baml-runtime/src/types/response.rs#L474-L510","documentation":"status() found neither an expr-function response, nor a function response, nor any result with constraints on the FunctionResult, so there is nothing to report and the test fails with a bare \"No response\". This means the test never produced any response object at all.","triggerScenarios":"Calling status() on a FunctionResult where expr_function_response is None, function_response is None, or function_response exists but result_with_constraints() returns None (no parsed result recorded).","commonSituations":"The LLM call never completed or was cancelled before a response was stored; the function errored before parsing so no parsed value was attached; async test orchestration read the result too early.","solutions":["Check upstream LLM call errors/logs — the actual failure happened before a response was produced","Verify the function ran to completion and its result was awaited/stored before calling status()","Inspect API key/network/timeout errors that abort the call before any response is recorded","Re-run the test; if persistent, run with verbose BAML logs"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// confirm a response exists before reading status\nif (!result || (!result.function_response && !result.expr_function_response)) {\n  throw new Error('no function response recorded yet');\n}","typeGuard":"const hasResponse = (r) => r != null && ('function_response' in r || 'expr_function_response' in r);","tryCatchPattern":"try {\n  const status = testResult.status();\n} catch (e) {\n  if (String(e).includes('No response')) {\n    // inspect upstream LLM errors: keys, network, timeouts\n  }\n  throw e;\n}","preventionTips":["Always await the function call fully before inspecting test status","Check API keys, network, and timeout settings before running tests","Log upstream LLM errors so \"No response\" never masks the real cause"],"tags":["testing","llm","no-response"],"backgroundTag":"empty-response-body","analyzedSha":"bd85ce9dee1463ff04d27efd20531013a4ff46c1","analyzedAt":"2026-09-12T03:38:25.718Z","contentChangedAt":"2026-09-12T03:38:25.718Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}