`should_use_v2_api` only read the probe error code via `response.data`, so a
`SlackApiError` carrying a plain-dict response (as the SDK and the unit tests
produce) resolved to an empty code, skipped the scope-missing branch, and never
emitted the v1 DeprecationWarning. Read the code from `.data` when present and
fall back to the response dict itself, fixing
test_returns_false_when_scope_missing_and_emits_deprecation_once.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>