MockConfigEntry defaults to version=1, which triggers async_migrate_integration on component setup; that legacy path indexes entry.data[CONF_API_KEY] directly and raised KeyError for the new optional-api-key entry in test_api_key_optional, before async_setup_entry (and thus AsyncOpenAI) was ever reached. Pin both entries in this file to version=2/minor_version=7, matching the config flow's current VERSION/MINOR_VERSION and conftest's mock_config_entry fixture. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01739Seac5eMAfNwFeiwV5r4