✓ PASS
pydantic-ai 2.61.0
truncation.reasoning-only · openai-responses
Requirements
| Id | Level | Status | Evidence |
|---|---|---|---|
| cause-is-truncation | MUST | SATISFIED | finish.value="length" (raw: ModelResponse.finish_reason); truth.finish="length"; error.category="truncation"; structured.returned_as_success=false |
| text-reported | MUST | SATISFIED | text.value=null (absent); truth.text=null |
| usage-reported | SHOULD | NOT_OBSERVABLE | usage.output=64 (raw); truth.usage.output=64 |
What the provider sent
- Finish
- length
- Raw finish
- max_output_tokens
- Text
null
- Tool calls
[]
- Usage
{ "alternatives": {}, "cached_input": 0, "input": 49, "output": 64, "raw": { "input_tokens": 49, "input_tokens_details": { "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 64, "output_tokens_details": { "reasoning_tokens": 64 }, "total_tokens": 113 }, "reasoning": 64, "total": 113 }- Stream completed
null
- Error
null
Wire excerpt
status: 200
content-type: application/json
body (json):
{
"id": "resp_03843dc5eb8bc0eb006acbfbfcc6b487d196e5ae15a8868c38",
"object": "response",
"created_at": 1791753212,
"status": "incomplete",
"access_programs": null,
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": null,
"error": null,
"frequency_penalty": 0.0,
"incomplete_details": {
"reason": "max_output_tokens"
},
"instructions": null,
"max_output_tokens": 64,
"max_tool_calls": null,
"model": "gpt-6-luna",
"moderation": null,
"output": [
{
"id": "rs_03843dc5eb8bc0eb006acbfbfe216c87d1970f84699a20a036",
"type": "reasoning",
"content": [],
"encrypted_content": "gAAAAABqy_v-QKt8willR-MkPZzm08z9B2pH5JRo24oLMTeI6vV5cZiwySzH3VY88xZngwZUsBdOxTyyIbYvDdCxgaJfh8gbE4yCka3muAV5rbM32QFRu-N-KM93g0Lh2-8vU1DL8kHF5xBBbkTc7RXiBoXzx5IIvyjspd_LjRlOYnDS74rpRa65bYgy3A-ToUGFlZJ1TuOprvSaGjnrjb-Hc9ydEL0bnV5Gdc9KvfKh4kK6BUt3xGz1VmGct6FaO8l184-Q42egS69AOfgfdNec5t5ep2h5XWmZcrJ1WJ51Ueegd0tw2_nnK2hDj252sRbVV9IJ9tzErqHZP2HB_68M-UYvYQSLl84OIyywkfyjXzq9sHrziPngStQT4oHf0GjaQDHwIyZT2cF9x9iQWjO8zTugBqjSBNp8LKRwW9XJgYctAFSWhjQQUUvqPuf4foZ_YK_AeEJX_W0S3gOk6AdVL0Q2R_ZgGaK__KcpUwOMoovcm8dY3fxWbyeku6HEPPQPGBEz_UP4CxGkfBZXDW7lmAdiFyPb9ZTxExoOvrthkWmzRevKSv0CCyOVVarRxysCneA3tXd884XItZyyKq0H1RixcXvgtiACF91HH-Y4i8OiLjEdjpEXFpIjJAvLIlCeZirf4jpOwc2t1hf0nU8RSFoehwJKRdIZPw-_7zTUs8J3QZ5luYjIZ4Yjp1bAjkHyytxzo0GAHa4poih19iRwDCvTFI8SjquaSAgn8TIfFIAGIODJz7btsJIZXxF30WwO2M9YG7UnK0BdO0grnBBke4F3bMpDWotULixV1Pg815KoHk9DFQErRg9fN3l3IYi-AAS-Br8dh78SlSaHqbeeqneyePwah_FXz_hDdQ8jnb3zi7yqopjqX964ciUaxwoc9sqUyczvSgWfOUIRgH52r_KCgDZAO07mCbY9S3ljKhFG3TVbieWzZhgwNCiq8KSleV7Y__A0eRfAudYriFWHDLXbWxqgJlgcLqaWHK0NaKp8o-p-j2Bpqpt1CHa1bRDx4UWmXelcRNWsq-Lt1csqdHqNmT39gzbrg_ZRsb8m4BXkjntRmQI4jdfbr36l4ACVFccTmFMv4D3oDPdPsnHyG0agCE0jm1rCfw8ImfHAhuh7BFskIrEZQAd9jfLTDWZOS-IbVVXMlD_t6d1rEivJJp6LVOPWC3Y2anL-0fiV5GXDq81Oz6coc3nKYN9cKc2Plt1jKK_kT-eU77MzZNFG6fc_qSZMDxfMygP9gDjCVxVpLzRJQ1osU3tllfXUQVrfvTeDtZlFiL5O2VP3ERzWUvohIO7rvYAJ6gDpGAteeMwTb-qjgwQFDr73QCtSxEo5opD2weAoLeVruEyYnMr8T9cj1VwrkSkLoDlO8J22v7lvHj5TJqg=",
"summary": []
}
],
"parallel_tool_calls": true,
"presence_penalty": 0.0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": "24h",
"reasoning": {
"context": "all_turns",
"effort": "medium",
"mode": "standard",
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 1.0,
"text": {
"format": {
"type": "text"
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tool_usage": {
"image_gen": {
"input_tokens": 0,
"input_tokens_details": {
"image_tokens": 0,
"text_tokens": 0
},
"output_tokens": 0,
"output_tokens_details": {
"image_tokens": 0,
"text_tokens": 0
},
"total_tokens": 0
},
"web_search": {
"num_requests": 0
}
},
"tools": [],
"top_logprobs": 0,
"top_p": 0.98,
"truncation": "disabled",
"usage": {
"input_tokens": 49,
"input_tokens_details": {
"cache_write_tokens": 0,
"cached_tokens": 0
},
"output_tokens": 64,
"output_tokens_details": {
"reasoning_tokens": 64
},
"total_tokens": 113
},
"user": null,
"metadata": {}
}What the library reported
- Outcome
- raised
- Finish
{ "raw": "max_output_tokens", "source": "ModelResponse.finish_reason", "surface": "raw", "value": "length" }- Text
- Value
null
- Surface
- absent
- Tool calls
[]
- Usage
{ "cached_input": 0, "input": 49, "output": 64, "reasoning": 64, "surface": { "cached_input": "raw", "input": "raw", "output": "raw", "reasoning": "raw", "total": "raw" }, "total": 113 }- Stream
{ "chunks_seen": null, "completed": null, "used": false }- Error
- Type
- pydantic_ai.exceptions.UnexpectedModelBehavior
- Message
- Model token limit (64) exceeded before any response was generated. Increase the `max_tokens` model setting, or simplify the prompt to result in a shorter response that will fit within the limit.
- Category
- truncation
- Retry after
null
- Stack top
- pydantic_ai/_agent_graph.py:2495
- Unsupported reason
null
Full observation JSON
{
"elapsed_ms": 303.6134745925665,
"error": {
"category": "truncation",
"message": "Model token limit (64) exceeded before any response was generated. Increase the `max_tokens` model setting, or simplify the prompt to result in a shorter response that will fit within the limit.",
"retry_after": null,
"stack_top": "pydantic_ai/_agent_graph.py:2495",
"type": "pydantic_ai.exceptions.UnexpectedModelBehavior"
},
"finish": {
"raw": "max_output_tokens",
"source": "ModelResponse.finish_reason",
"surface": "raw",
"value": "length"
},
"format": "wiretruth.observation/v1",
"library": {
"api": "Agent.run",
"language": "python",
"name": "pydantic-ai",
"version": "2.61.0"
},
"notes": [],
"outcome": "raised",
"stream": {
"chunks_seen": null,
"completed": null,
"used": false
},
"structured": {
"attempted": false,
"returned_as_success": false,
"value": null
},
"text": {
"surface": "absent",
"value": null
},
"tool_calls": [],
"unsupported_reason": null,
"usage": {
"cached_input": 0,
"input": 49,
"output": 64,
"reasoning": 64,
"surface": {
"cached_input": "raw",
"input": "raw",
"output": "raw",
"reasoning": "raw",
"total": "raw"
},
"total": 113
}
}Fixture
recorded openai-responses/truncation.reasoning-only
| Provenance | Value |
|---|---|
| Recorded at | 2026-10-11T21:13:32Z |
| Requested model | gpt-6-luna |
| Returned model | gpt-6-luna |
| CI run | https://github.com/kartsan03/wiretruth/actions/runs/38175457862 |
Reproduce
wiretruth serve openai-responses/truncation.reasoning-onlyPlain-library snippet from the shim manifest.
OpenAIResponsesModel(model, provider=OpenAIProvider(base_url=WIRETRUTH_BASE_URL_OPENAI_RESPONSES, api_key=WIRETRUTH_API_KEY))Upstream
No matching upstream report.
History
| Version | Grade |
|---|---|
| 2.61.0 | ✓ PASS |
| 2.56.0 | ✓ PASS |