El doble # hace que la validación de la configuración del objeto falle en el núcleo (no en este TC en sí).
mal URI (¿no es URI?): "https://matrix.to/#/#matrix-meta-chat:fedoraproject.org" (URI::InvalidURIError)
No es estrictamente una URI válida, por lo que necesitarías codificar el fragmento.
Aquí, usar https://matrix.to/#/%23matrix-meta-chat:fedoraproject.org funcionará.
Mirando el código:
https://github.com/discourse/discourse/blob/main/lib/theme_settings_object_validator.rb#L191-L193
is_valid_url se define aquí:
Puedes ver que ya tienen otra función para lidiar con esta situación y se está utilizando en otros lugares:
Creo que es razonable usar relaxed_parse para la validación de URL del objeto de tema.
Por ejemplo: if validations&.dig(:url) && !UrlHelper.relaxed_parse?(value)