home-assistant/core · error · HomeAssistantError

reaction_request_failed

Error message

reaction_request_failed

What it means

Raised by the Bring! integration's send_activity_stream_reaction service when the underlying bring-websocket API call to notify() fails with BringRequestException (HTTP/transport failure) or BringAuthException (expired or invalid session). The HomeAssistantError wraps the library error and preserves it as __cause__. The list itself was already resolved (a missing list/activity raises activity_not_found earlier).

Source

Thrown at homeassistant/components/bring/services.py:92

        reaction: ReactionType = call.data[ATTR_REACTION]

        if not activity:
            raise ServiceValidationError(
                translation_domain=DOMAIN,
                translation_key="activity_not_found",
            )
        try:
            await coordinator.bring.notify(
                list_uuid,
                BringNotificationType.LIST_ACTIVITY_STREAM_REACTION,
                receiver=state.attributes[ATTR_RECEIVER],
                activity=state.attributes[ATTR_ACTIVITY],
                activity_type=ActivityType(activity.upper()),
                reaction=reaction,
            )
        except (BringRequestException, BringAuthException) as e:
            raise HomeAssistantError(
                translation_domain=DOMAIN,
                translation_key="reaction_request_failed",
            ) from e

    hass.services.async_register(
        DOMAIN,
        SERVICE_ACTIVITY_STREAM_REACTION,
        async_send_activity_stream_reaction,
        SERVICE_ACTIVITY_STREAM_REACTION_SCHEMA,
    )

    service.async_register_platform_entity_service(
        hass,
        DOMAIN,
        SERVICE_PUSH_NOTIFICATION,
        entity_domain=TODO_DOMAIN,
        schema={
            vol.Required(ATTR_NOTIFICATION_TYPE): vol.All(

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Check the Bring API status / your network connectivity, then retry the service call.
  2. If it fails repeatedly, reload the integration or re-authenticate via the HA UI (AuthException path) to refresh the session.
  3. Verify the target entity belongs to a list still shared with the reacting user and that receiver/activity attributes are populated (they come from entity state, not service input).
  4. Inspect logs for the chained __cause__ (BringRequestException detail) to distinguish auth vs network failure.
Defensive patterns

Strategy: retry

Try / catch

from homeassistant.exceptions import HomeAssistantError

try:
    await hass.services.async_call(
        "bring", "activity_stream_reaction", service_data, blocking=True
    )
except HomeAssistantError as err:
    if err.translation_key == "reaction_request_failed":
        # transient Bring cloud/auth failure: schedule retry
        raise HomeAssistantErrorRetryLater from err
    raise

Prevention

When it happens

Trigger: Calling the bring.activity_stream_reaction service with valid list/activity/reaction targets while the Bring cloud API is unreachable, rate-limited, or the OAuth session has expired. Specifically it fires when coordinator.bring.notify(..., BringNotificationType.LIST_ACTIVITY_STREAM_REACTION, ...) raises BringRequestException or BringAuthException.

Common situations: Bring cloud outage or maintenance, expired token after long HA downtime, flaky home internet, reaction sent to a list the authenticated account can no longer access (membership revoked between coordinator refresh and service call).

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/ec02a44d5bc5a99b. Report an issue: GitHub.