# Change history: Chat Completions

[← Changelog](/docs/changelog). Entries: 48.

- 2026-09-28 [BC-0928-7: the `agent_turn_loop_detected` refusal for a looping agent turn is switched on](/docs/changelog/2026-09-28#bc-0928-7-the-agent_turn_loop_detected-refusal-for-a-looping-agent-turn-is-switched-on)
- 2026-09-28 [FIX-0928-26: a chat response without tool calls is no longer marked as a tool call](/docs/changelog/2026-09-28#fix-0928-26-a-chat-response-without-tool-calls-is-no-longer-marked-as-a-tool-call)
- 2026-09-26 [FIX-0926-3: looping model reasoning is cut off with the reasoning_repetition code](/docs/changelog/2026-09-26#fix-0926-3-looping-model-reasoning-is-cut-off-with-the-reasoning_repetition-code)
- 2026-09-26 [FIX-0926-4: the streamed chat response always ends with a finish reason](/docs/changelog/2026-09-26#fix-0926-4-the-streamed-chat-response-always-ends-with-a-finish-reason)
- 2026-09-25 [FIX-0925-11: BitrixGPT 5.5 accepts json_schema when the model supports structured outputs](/docs/changelog/2026-09-25#fix-0925-11-bitrixgpt-5-5-accepts-json_schema-when-the-model-supports-structured-outputs)
- 2026-09-24 [NEW-0924-10: new refusal code `agent_turn_loop_detected` for a looping agent turn](/docs/changelog/2026-09-24#new-0924-10-new-refusal-code-agent_turn_loop_detected-for-a-looping-agent-turn)
- 2026-09-22 [NEW-0922-2: two new refusal codes for agent runtime keys](/docs/changelog/2026-09-22#new-0922-2-two-new-refusal-codes-for-agent-runtime-keys)
- 2026-09-20 [FIX-0920-8: the previous turn's reasoning reaches the model again](/docs/changelog/2026-09-20#fix-0920-8-the-previous-turn-s-reasoning-reaches-the-model-again)
- 2026-09-18 [FIX-0918-7: a function-call turn no longer duplicates the reasoning into content](/docs/changelog/2026-09-18#fix-0918-7-a-function-call-turn-no-longer-duplicates-the-reasoning-into-content)
- 2026-09-16 [NEW-0916-8: Cowork off-peak and quota-relief keys now always arrive](/docs/changelog/2026-09-16#new-0916-8-cowork-off-peak-and-quota-relief-keys-now-always-arrive)
- 2026-09-15 [FIX-0915-6: the frozen-account refusal no longer promises the backup model is paid from the wallet](/docs/changelog/2026-09-15#fix-0915-6-the-frozen-account-refusal-no-longer-promises-the-backup-model-is-paid-from-the-wallet)
- 2026-09-14 [BC-0914-19: the chat model field no longer matches models by substring](/docs/changelog/2026-09-14#bc-0914-19-the-chat-model-field-no-longer-matches-models-by-substring)
- 2026-09-14 [NEW-0914-22: reasoning from earlier responses in the chat completion history](/docs/changelog/2026-09-14#new-0914-22-reasoning-from-earlier-responses-in-the-chat-completion-history)
- 2026-09-14 [FIX-0914-24: the default reasoning step is sent to the model explicitly](/docs/changelog/2026-09-14#fix-0914-24-the-default-reasoning-step-is-sent-to-the-model-explicitly)
- 2026-09-10 [BC-0910-1: a network failure on the way to the provider arrives under its own code ai_provider_network](/docs/changelog/2026-09-10#bc-0910-1-a-network-failure-on-the-way-to-the-provider-arrives-under-its-own-code-ai_provider_network)
- 2026-09-10 [FIX-0910-2: AI provider errors now carry the pause from the provider's own header, in one shape for every stream](/docs/changelog/2026-09-10#fix-0910-2-ai-provider-errors-now-carry-the-pause-from-the-provider-s-own-header-in-one-shape-for-every-stream)
- 2026-09-10 [FIX-0910-7: responses of a model hosted by a third-party provider name the public model id](/docs/changelog/2026-09-10#fix-0910-7-responses-of-a-model-hosted-by-a-third-party-provider-name-the-public-model-id)
- 2026-09-10 [BC-0910-11: a custom AI provider no longer follows redirects](/docs/changelog/2026-09-10#bc-0910-11-a-custom-ai-provider-no-longer-follows-redirects)
- 2026-09-09 [FIX-0909-11: model reasoning for Cowork no longer appears in final text](/docs/changelog/2026-09-09#fix-0909-11-model-reasoning-for-cowork-no-longer-appears-in-final-text)
- 2026-09-05 [FIX-0905-1: chat with a Cowork/Code key works while the product is disabled](/docs/changelog/2026-09-05#fix-0905-1-chat-with-a-cowork-code-key-works-while-the-product-is-disabled)
- 2026-09-03 [NEW-0903-2: reasoning control in chat completions](/docs/changelog/2026-09-03#new-0903-2-reasoning-control-in-chat-completions)
- 2026-09-01 [FIX-0901-9: file uploads and AI requests now answer 429 under memory pressure](/docs/changelog/2026-09-01#fix-0901-9-file-uploads-and-ai-requests-now-answer-429-under-memory-pressure)
- 2026-08-22 [FIX-0822-13: The inactive-subscription refusal now points at the subscription page](/docs/changelog/2026-08-22#fix-0822-13-the-inactive-subscription-refusal-now-points-at-the-subscription-page)
- 2026-08-20 [FIX-0820-8: AI provider refusal: a readable message instead of relayed prose, and one error shape for streaming and non-streaming](/docs/changelog/2026-08-20#fix-0820-8-ai-provider-refusal-a-readable-message-instead-of-relayed-prose-and-one-error-shape-for-streaming-and-non-streaming)
- 2026-08-16 [NEW-0816-3: new 402 company_budget_exhausted rejection on calls that spend credits](/docs/changelog/2026-08-16#new-0816-3-new-402-company_budget_exhausted-rejection-on-calls-that-spend-credits)
- 2026-08-14 [FIX-0814-4: leading service markers are no longer included in model content](/docs/changelog/2026-08-14#fix-0814-4-leading-service-markers-are-no-longer-included-in-model-content)
- 2026-08-11 [NEW-0811-4: off-peak hours are visible in the Cowork/Code subscription and in the exhausted-quota refusal](/docs/changelog/2026-08-11#new-0811-4-off-peak-hours-are-visible-in-the-cowork-code-subscription-and-in-the-exhausted-quota-refusal)
- 2026-08-11 [FIX-0811-23: the ai_congested retry pause now scales with the configured base and is capped](/docs/changelog/2026-08-11#fix-0811-23-the-ai_congested-retry-pause-now-scales-with-the-configured-base-and-is-capped)
- 2026-08-11 [BC-0811-28: AI requests now carry a service deadline: a 429 refusal instead of a hang](/docs/changelog/2026-08-11#bc-0811-28-ai-requests-now-carry-a-service-deadline-a-429-refusal-instead-of-a-hang)
- 2026-08-10 [NEW-0810-16: agent model bitrix/bitrixgpt-5.6-agent](/docs/changelog/2026-08-10#new-0810-16-agent-model-bitrix-bitrixgpt-5-6-agent)
- 2026-08-10 [NEW-0810-17: bitrix/bitrixgpt-5.5-agent is deprecated](/docs/changelog/2026-08-10#new-0810-17-bitrix-bitrixgpt-5-5-agent-is-deprecated)
- 2026-08-06 [NEW-0806-1: 402 for an exhausted Cowork/Code quota carries a Retry-After header](/docs/changelog/2026-08-06#new-0806-1-402-for-an-exhausted-cowork-code-quota-carries-a-retry-after-header)
- 2026-08-06 [BC-0806-20: quota consumption is reported as percentages only](/docs/changelog/2026-08-06#bc-0806-20-quota-consumption-is-reported-as-percentages-only)
- 2026-08-04 [FIX-0804-11: model-unavailable refusal is now 429 with a wait hint, not 502](/docs/changelog/2026-08-04#fix-0804-11-model-unavailable-refusal-is-now-429-with-a-wait-hint-not-502)
- 2026-08-01 [FIX-0801-1: AI endpoint response bodies no longer carry platform-internal fields](/docs/changelog/2026-08-01#fix-0801-1-ai-endpoint-response-bodies-no-longer-carry-platform-internal-fields)
- 2026-07-27 [FIX-0727-12: Connect keys: stored scopes are authoritative — vibe:ai / vibe:search are no longer added automatically](/docs/changelog/2026-07-27#fix-0727-12-connect-keys-stored-scopes-are-authoritative-vibe-ai-vibe-search-are-no-longer-added-automatically)
- 2026-07-25 [NEW-0725-2: model calls with a short-lived token issued to a partner system](/docs/changelog/2026-07-25#new-0725-2-model-calls-with-a-short-lived-token-issued-to-a-partner-system)
- 2026-07-21 [BC-0721-10: a broken image_url candidate no longer fails the whole request](/docs/changelog/2026-07-21#bc-0721-10-a-broken-image_url-candidate-no-longer-fails-the-whole-request)
- 2026-07-20 [NEW-0720-3: streaming chat-completions now ends a stalled upstream response with an explicit error](/docs/changelog/2026-07-20#new-0720-3-streaming-chat-completions-now-ends-a-stalled-upstream-response-with-an-explicit-error)
- 2026-07-16 [BC-0716-1: json_object on a reasoning model recovers JSON; the 422 body is refined](/docs/changelog/2026-07-16#bc-0716-1-json_object-on-a-reasoning-model-recovers-json-the-422-body-is-refined)
- 2026-07-12 [NEW-0712-1: The AI quota exhaustion response now points to the top-up path](/docs/changelog/2026-07-12#new-0712-1-the-ai-quota-exhaustion-response-now-points-to-the-top-up-path)
- 2026-07-10 [FIX-0710-6: non-streaming chat/completions and embeddings no longer abort at 360 seconds](/docs/changelog/2026-07-10#fix-0710-6-non-streaming-chat-completions-and-embeddings-no-longer-abort-at-360-seconds)
- 2026-07-10 [NEW-0710-16: AI quota pacing: pacing field in the response and 429 ai_pacing_limited error](/docs/changelog/2026-07-10#new-0710-16-ai-quota-pacing-pacing-field-in-the-response-and-429-ai_pacing_limited-error)
- 2026-07-08 [BC-0708-7: structured output: a truncated or empty result now returns 422 instead of an empty 200](/docs/changelog/2026-07-08#bc-0708-7-structured-output-a-truncated-or-empty-result-now-returns-422-instead-of-an-empty-200)
- 2026-07-06 [NEW-0706-2: New 402 error code ai_quota_exhausted on AI endpoints](/docs/changelog/2026-07-06#new-0706-2-new-402-error-code-ai_quota_exhausted-on-ai-endpoints)
- 2026-07-06 [FIX-0706-3: Over-quota AI usage is charged at the model's base catalog price](/docs/changelog/2026-07-06#fix-0706-3-over-quota-ai-usage-is-charged-at-the-model-s-base-catalog-price)
- 2026-07-05 [NEW-0705-5: New 402 error code ai_quota_exhausted on AI endpoints](/docs/changelog/2026-07-05#new-0705-5-new-402-error-code-ai_quota_exhausted-on-ai-endpoints)
- 2026-07-03 [FIX-0703-11: Omitting the model field in chat again falls back to the default model](/docs/changelog/2026-07-03#fix-0703-11-omitting-the-model-field-in-chat-again-falls-back-to-the-default-model)
