diff --git a/changelog.d/19056.misc b/changelog.d/19056.misc new file mode 100644 index 00000000000..f3a1b4e66ea --- /dev/null +++ b/changelog.d/19056.misc @@ -0,0 +1 @@ +Move `oidc.load_metadata()` startup into `_base.start()`. diff --git a/synapse/app/_base.py b/synapse/app/_base.py index e5f4cfb0e6a..2de5bdb51e1 100644 --- a/synapse/app/_base.py +++ b/synapse/app/_base.py @@ -648,6 +648,16 @@ async def start(hs: "HomeServer", *, freeze: bool = True) -> None: # Apply the cache config. hs.config.caches.resize_all_caches() + # Load the OIDC provider metadatas, if OIDC is enabled. + if hs.config.oidc.oidc_enabled: + oidc = hs.get_oidc_handler() + # Loading the provider metadata also ensures the provider config is valid. + # + # FIXME: It feels a bit strange to validate and block on startup as one of these + # OIDC providers could be temporarily unavailable and cause Synapse to be unable + # to start. + await oidc.load_metadata() + # Load the certificate from disk. refresh_certificate(hs) diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py index 3807a18ab75..fb937c63c11 100644 --- a/synapse/app/homeserver.py +++ b/synapse/app/homeserver.py @@ -447,14 +447,6 @@ async def start( False otherwise the homeserver cannot be garbage collected after `shutdown`. """ - # TODO: Feels like this should be moved somewhere else. - # - # Load the OIDC provider metadatas, if OIDC is enabled. - if hs.config.oidc.oidc_enabled: - oidc = hs.get_oidc_handler() - # Loading the provider metadata also ensures the provider config is valid. - await oidc.load_metadata() - await _base.start(hs, freeze=freeze) # TODO: Feels like this should be moved somewhere else.