Channel notification fails with empty 'to'

Hey,

I was configuring notifications for several dashboard and saw that none of the emails were arriving.

I've check different issues and increased already the MB_NOTIFICATION_THREAD_POOL_SIZE to 10.

After reviewing the tasks I saw that the notification task is marked as success but not the channel which I guess is the one sending the info.

This is the error I'm getting:

{
  "status": "failed",
  "exception": "class clojure.lang.ExceptionInfo",
  "message": "450 The `to` field must be a `string`.\n",
  "stacktrace": [
    "--> notification.send$channel_send_retrying_BANG_$send_BANG___109128.invoke(send.clj:73)",
    "util.retry$decorate$fn$reify__75664.call(retry.clj:101)",
    "util.retry$decorate$fn__75663.doInvoke(retry.clj:102)",
    "util.retry$make75668__75669$fn__75670.invoke(retry.clj:111)",
    "notification.send$channel_send_retrying_BANG_$fn__109139.invoke(send.clj:99)",
    "models.task_history$do_with_task_history67161__67162.invokeStatic(task_history.clj:117)",
    "models.task_history$do_with_task_history67161__67162.invoke(task_history.clj:105)",
    "notification.send$channel_send_retrying_BANG_.invokeStatic(send.clj:85)",
    "notification.send$channel_send_retrying_BANG_.invoke(send.clj:55)",
    "notification.send$send_notification_sync_BANG_109213__109215$fn__109225$fn__109226$fn__109229$fn__109238.invoke(send.clj:179)",
    "notification.send$send_notification_sync_BANG_109213__109215$fn__109225$fn__109226$fn__109229.invoke(send.clj:165)",
    "models.task_history$do_with_task_history67161__67162.invokeStatic(task_history.clj:117)",
    "models.task_history$do_with_task_history67161__67162.invoke(task_history.clj:105)",
    "notification.send$send_notification_sync_BANG_109213__109215$fn__109225$fn__109226.invoke(send.clj:156)",
    "notification.send$send_notification_sync_BANG_109213__109215$fn__109225.invoke(send.clj:151)",
    "util$do_with_timer_ms.invokeStatic(util.cljc:1230)",
    "util$do_with_timer_ms.invoke(util.cljc:1225)",
    "notification.send$send_notification_sync_BANG_109213__109215.invokeStatic(send.clj:147)",
    "notification.send$send_notification_sync_BANG_109213__109215.invoke(send.clj:142)",
    "notification.send$send_notification_BANG_109467__109469.invokeStatic(send.clj:400)",
    "notification.send$send_notification_BANG_109467__109469.doInvoke(send.clj:391)",
    "notification.api.notification$fn__110771$fn__110777.invoke(notification.clj:227)",
    "api.macros$_core_fn96117__96118$core_fn__96119.invoke(macros.clj:415)",
    "api.macros$endpoint_handler_STAR_96161__96163$handler__96167.invoke(macros.clj:611)",
    "api.macros$build_ns_handler96194__96195$ns_handler_STAR___96196.invoke(macros.clj:675)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "server.middleware.auth$enforce_authentication$fn__106833.invoke(auth.clj:23)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "api.util.hafindlers$_route_map_handler$fn__106789.invoke(handlers.clj:24)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "api.util.handlers$_route_map_handler$fn__106789.invoke(handlers.clj:23)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "api.routes$fn__116617.invokeStatic(routes.clj:95)",
    "api.routes$fn__116617.invoke(routes.clj:94)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "server.routes$fn__117175$fn__117176.invoke(routes.clj:70)",
    "api.util.handlers$_route_map_handler$fn__106789.invoke(handlers.clj:24)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "api.util.handlers$_route_map_handler$fn__106789.invoke(handlers.clj:23)",
    "api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)",
    "server.middleware.exceptions$catch_uncaught_exceptions$fn__109007.invoke(exceptions.clj:111)",
    "server.middleware.exceptions$catch_api_exceptions$fn__109004.invoke(exceptions.clj:100)",
    "server.middleware.log$log_api_call$fn__117792$fn__117793$fn__117794.invoke(log.clj:232)",
    "driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invokeStatic(diagnostic.clj:17)",
    "driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invoke(diagnostic.clj:12)",
    "server.middleware.log$log_api_call$fn__117792$fn__117793.invoke(log.clj:223)",
    "server.middleware.log$log_api_call$fn__117792.invoke(log.clj:222)",
    "server.middleware.browser_cookie$ensure_browser_id_cookie$fn__123382.invoke(browser_cookie.clj:40)"
  ],
  "ex-data": { "metabase.notification.send/skip-retry?": false },
  "original-info": {
    "retry_config": {
      "max-attempts": 7,
      "initial-interval-millis": 500,
      "multiplier": 2,
      "randomization-factor": 0.1,
      "max-interval-millis": 30000,
      "retry-on-exception-pred": "clojure.core$comp$fn__5895@7c43aa17"
    },
    "channel_id": null,
    "channel_type": "channel/email",
    "template_id": null,
    "notification_id": null,
    "notification_type": "notification/card",
    "recipient_ids": [null]
  },
  "attempted_retries": 7,
  "retry_errors": [
    {
      "message": "450 The `to` field must be a `string`.\n",
      "timestamp": "2025-06-24T16:09:28.232956906Z"
    },
    {
      "message": "450 The `to` field must be a `string`.\n",
      "timestamp": "2025-06-24T16:09:11.19801866Z"
    },
    {
      "message": "450 The `to` field must be a `string`.\n",
      "timestamp": "2025-06-24T16:09:02.785996191Z"
    },
    {
      "message": "450 The `to` field must be a `string`.\n",
      "timestamp": "2025-06-24T16:08:57.990328747Z"
    },
    {
      "message": "450 The `to` field must be a `string`.\n",
      "timestamp": "2025-06-24T16:08:55.721714274Z"
    },
    {
      "message": "450 The `to` field must be a `string`.\n",
      "timestamp": "2025-06-24T16:08:54.29437614Z"
    },
    {
      "message": "450 The `to` field must be a `string`.\n",
      "timestamp": "2025-06-24T16:08:53.453935699Z"
    }
  ]
}

I've reviewed the mails and all of them have valid emails and the test email from the smtp section works.

The version I'm currently at is the 0.55.4.

Any idea what could I be doing wrong?

Thanks!

btw: I've tested the webhook configuration and seems to work