This issue happens in my main instance and in this test instance. HA runs in a docker container. The integration was copied into the config/custom_components/ path. When I fill in my credentials and hit send the error "Unknown error occurred" appears. When I use wrong credetials the correct error "Invalid authentication" appears.
ha-test | 2024-05-11 14:07:17.803 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Received {'type': 'config_entries/flow/progress', 'id': 76}
ha-test | 2024-05-11 14:07:17.803 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Sending b'{"id":76,"type":"result","success":true,"result":[]}'
ha-test | 2024-05-11 14:07:17.805 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Received {'type': 'manifest/get', 'integration': 'cowboy', 'id': 77}
ha-test | 2024-05-11 14:07:17.805 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Sending b'{"id":77,"type":"result","success":true,"result":{"domain":"cowboy","name":"Cowboy","codeowners":["@elsbrock"],"config_flow":true,"dependencies":[],"documentation":"https://github.com/elsbrock/cowboy-ha","homekit":{},"iot_class":"cloud_polling","issue_tracker":"https://github.com/elsbrock/cowboy-ha/issues","requirements":[],"ssdp":[],"version":"v1.0.1","zeroconf":[],"is_built_in":false}}'
ha-test | 2024-05-11 14:07:17.825 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Received {'type': 'frontend/get_translations', 'language': 'de', 'category': 'config', 'integration': ['cowboy'], 'id': 78}
ha-test | 2024-05-11 14:07:17.825 DEBUG (MainThread) [homeassistant.helpers.translation] Cache miss for de: {'cowboy'}
ha-test | 2024-05-11 14:07:17.826 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Received {'type': 'frontend/get_translations', 'language': 'de', 'category': 'selector', 'integration': ['cowboy'], 'id': 79}
ha-test | 2024-05-11 14:07:17.826 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Received {'type': 'frontend/get_translations', 'language': 'de', 'category': 'title', 'integration': ['cowboy'], 'id': 80}
ha-test | 2024-05-11 14:07:17.829 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated 192.168.1.122 for /api/config/config_entries/flow using bearer token
ha-test | 2024-05-11 14:07:17.830 DEBUG (MainThread) [homeassistant.helpers.http] Serving /api/config/config_entries/flow to 192.168.1.122 (auth: True)
ha-test | 2024-05-11 14:07:17.838 DEBUG (SyncWorker_1) [homeassistant.util.json] JSON file not found: /config/custom_components/cowboy/translations/de.json
ha-test | 2024-05-11 14:07:17.841 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Sending b'[{"id":78,"type":"result","success":true,"result":{"resources":{"component.cowboy.config.abort.already_configured":"Device is already configured","component.cowboy.config.error.cannot_connect":"Failed to connect","component.cowboy.config.error.invalid_auth":"Invalid authentication","component.cowboy.config.error.unknown":"Unexpected error","component.cowboy.config.step.user.data.password":"Password","component.cowboy.config.step.user.data.username":"Username"}}},{"id":79,"type":"result","success":true,"result":{"resources":{}}}]'
ha-test | 2024-05-11 14:07:17.842 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [140668467743296] sascha from 192.168.1.122 (Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0): Sending b'{"id":80,"type":"result","success":true,"result":{"resources":{"component.cowboy.title":"Cowboy"}}}'
ha-test | 2024-05-11 14:07:17.845 DEBUG (MainThread) [homeassistant.loader] Importing platforms for cowboy executor=['config_flow'] loop=[] took 0.01s
ha-test | 2024-05-11 14:07:36.786 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated 192.168.1.122 for /api/config/config_entries/flow/012c5fec2b17a208b448ee8a6f79e712 using bearer token
ha-test | 2024-05-11 14:07:36.786 DEBUG (MainThread) [homeassistant.helpers.http] Serving /api/config/config_entries/flow/012c5fec2b17a208b448ee8a6f79e712 to 192.168.1.122 (auth: True)
ha-test | 2024-05-11 14:07:37.353 ERROR (MainThread) [aiohttp.server] Error handling request
ha-test | Traceback (most recent call last):
ha-test | File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
ha-test | resp = await request_handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
ha-test | resp = await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl
ha-test | return await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
ha-test | return await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
ha-test | return await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
ha-test | return await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 88, in ban_middleware
ha-test | return await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/local/lib/python3.12/site-packages/aiohttp_session/__init__.py", line 199, in factory
ha-test | response = await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 295, in auth_middleware
ha-test | return await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
ha-test | response = await handler(request)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
ha-test | result = await handler(request, **request.match_info)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 71, in with_admin
ha-test | return await func(self, request, *args, **kwargs)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
ha-test | return await super().post(request, flow_id)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 73, in wrapper
ha-test | return await method(view, request, data, *args, **kwargs)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
ha-test | result = await self._flow_mgr.async_configure(flow_id, data)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 368, in async_configure
ha-test | result = await self._async_configure(flow_id, user_input)
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 414, in _async_configure
ha-test | result = await self._async_handle_step(
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 573, in _async_handle_step
ha-test | result = await self.async_finish_flow(flow, result.copy())
ha-test | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ha-test | File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1350, in async_finish_flow
ha-test | title=result["title"],
ha-test | ~~~~~~^^^^^^^^^
ha-test | KeyError: 'title'