{"version":"2.1.219","anchor":"sdk-reports-why-fast-mode-is-unavailable","canonical_anchor":"sdk-reports-why-fast-mode-is-unavailable","heading":"SDK reports why fast mode is unavailable","tier":"use","area":"SDK","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219\/e\/sdk-reports-why-fast-mode-is-unavailable","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219","markdown":"### SDK reports why fast mode is unavailable\n\nSDK messages now tell you exactly why fast mode was unavailable for a request.\n\n**What**\n\nAn optional `fast_mode_disabled_reason` field now travels on SDK init and result messages, so a client can tell why a request could not use fast mode rather than guessing.\n\n**Details**\n\n- Added to the init message and to both the success and error result message schemas.\n- Populated on every result path, including `\"tool_deferred_unavailable\"`, `\"budget_exhausted\"` and `\"turn_setup_failed\"`.\n- Enum values: `free`, `preference`, `extra_usage_disabled`, `network_error`, `unknown`, `not_first_party`, `disabled_by_env`, `model_not_allowed`, `sdk_opt_in_required`, `pending`.\n- A companion Set of the first five values normalizes server-supplied reasons: unrecognized values map to `unknown`, null maps to `preference`.\n- The field is absent when nothing blocks fast mode; a request may still choose standard speed.\n\n**Evidence**\n\n`Why fast mode can't serve right now. Absent when nothing blocks it (a request may still choose standard speed).`\n\n- Area: SDK\n- Names: `fast_mode_disabled_reason`\n- Tier: Use it now\n- Useful: 3\/5\n- Signal: 0\/5"}