Nest integration timing out after restart + new router (opnsense)

Here’s a fun one that I’ve been hitting my head against for a couple hours. My Nest integration no longer gets past the initialization stage and eventually times out with this error. Internet now goes through a brand new Opnsense box so I imagine I’ve got a firewall issue somewhere but I have had zero luck finding any information on this. Confusingly, the app works fine, so the nest is definitely still connected to the cloud. HA just can’t talk to the cloud for some reason.

Logger: homeassistant.config_entries
Source: config_entries.py:402
First occurred: 5:01:01 PM (1 occurrences)
Last logged: 5:01:01 PM

Error setting up entry Home for nest
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 402, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/nest/__init__.py", line 201, in async_setup_entry
    await subscriber.start_async()
  File "/usr/local/lib/python3.11/site-packages/google_nest_sdm/google_nest_subscriber.py", line 433, in start_async
    await self._subscriber_factory.async_new_subscriber(
  File "/usr/local/lib/python3.11/site-packages/google_nest_sdm/google_nest_subscriber.py", line 286, in async_new_subscriber
    return await loop.run_in_executor(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError: Global task timeout

It started working again after about an hour of me toggling things and I thought I knew what fixed it but I restarted my network again today (working on some electrical stuff in the house). Once again I brought everything back up and the nest integration is throwing a fit again.

At least there’s a new error.

Logger: google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager
Source: /usr/local/lib/python3.11/site-packages/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py:131
First occurred: 7:47:26 PM (9 occurrences)
Last logged: 7:47:28 PM

Top-level exception occurred in callback while processing a message
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py", line 126, in _wrap_callback_errors
    callback(message)
  File "/usr/local/lib/python3.11/site-packages/google_nest_sdm/google_nest_subscriber.py", line 283, in callback_wrapper
    future.result()
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.11/site-packages/google_nest_sdm/google_nest_subscriber.py", line 533, in _async_message_callback
    event = EventMessage(payload, self._auth)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/google_nest_sdm/event.py", line 346, in __init__
    super().__init__(**raw_data, auth=auth)
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for EventMessage
relationUpdate -> subject
  field required (type=value_error.missing)