Good day,
Small UCS 5.2-4 domain with three nodes:
- Master: Primary Directory Node
- Backup: Backup Directory Node
- Managed: member (reverse proxy + mail server)
Keycloak app is installed on master node only. Nextcloud, eGroupware, and Rocket.Chat previously installed as apps on managed node but were removed to stand-alone installs prior to 5.0 > 5.2 upgrade.
Attempting to update to 5.2-5 fails in the pre-update checks with:
minimum_ucs_version_of_all_systems_in_domainrequirement not met- update aborts before packages are installed.
All nodes show version 5.2-4 in LDAP query.
Errata updates complete successfully.
Attempted domain rejoin:
- Master:
univention-join-hookssegfault at join/pre-joinscripts
univention-run-join-scripts started
Sat 02 May 2026 09:28:29 AEST
univention-join-hooks: looking for hook type "join/pre-joinscripts" on master.mydomain
Found hooks:
/usr/share/univention-join/joinscripthelper.lib: line 318: 3214063 Segmentation fault /usr/share/univention-join/univention-join-hooks --server-role "$server_role" --hooktype "$hooktype" --master "$master" --binddn "$j_binddn" --bindpwdfile "$j_bindpwdfile" >> /var/log/univention/join.log 2>&1
**************************************************************************
* Running join scripts failed! *
**************************************************************************
* Message: join/pre-joinscripts failed, see /var/log/univention/join.log
**************************************************************************
Checks on master node:
ls -1 /usr/share/univention-join/join-hooks.d/
# -> No such file or directory (no custom hooks)
file /usr/share/univention-join/univention-join-hooks
# -> Python script, ASCII text executable
dpkg -S /usr/share/univention-join/univention-join-hooks
# -> univention-join
dpkg -V univention-join
# -> no modified files reported
Appears the Python hook runner itself (or something it imports) segfaults during join/pre-joinscripts, with no custom hook directory present.
- On Backup node: UMC/Keycloak join
invalid_grant(workaround applied)
On backup node, domain join from the GUI initially failed in:
92univention-management-console-web-server.inst
Excerpt from /var/log/univention/join.log:
CREATING KEYCLOAK SAML CLIENT.....
...
keycloak.exceptions.KeycloakPostError: 400: b'{"error":"invalid_grant","error_description":"Invalid user credentials"}'
92univention-management-console-web-server.inst: Could not create SAML service provider
Context:
-
Keycloak app installed on master node, UCR shows e.g.:
appcenter/apps/keycloak/status: installed appcenter/apps/keycloak/version: 26.6.1-ucs1 keycloak/server/sso/fqdn: ucs-sso-ng.mydomain -
In Keycloak GUI, I see UCS realm clients for:
https://master.mydomain/univention/saml/metadatahttps://backup.mydomain/univention/saml/metadatahttps://managed.mydomain/univention/saml/metadata
-
No dedicated “sys-idp-user” shows up in the Users list; UCS appears to use client/service-account credentials.
Connectivity from backup node is OK:
curl -vk https://ucs-sso-ng.mydomain
curl -vk https://master.mydomain
both succeed with the UCS internal CA.
As a workaround on backup node:
mv /usr/lib/univention-install/92univention-management-console-web-server.inst \
/usr/lib/univention-install/92univention-management-console-web-server.inst.disabled
Then from the GUI, re-ran the join; now:
univention-check-join-status
# -> Joined successfully
Backup node joins cleanly with that one joinscript skipped.
Questions
-
How can I debug/fix the
univention-join-hookssegfault atjoin/pre-joinscriptson master, given:- No custom hook directory,
univention-join-hooksis an unmodified Python script fromunivention-join,
-
What is the recommended way to repair the Keycloak service credentials used by
univention-keycloakin92univention-management-console-web-server.inst(currently returninginvalid_grant), when the UCS Keycloak app manages these internally and there is no obvious user in the Keycloak “Users” section?
Many thanks in advance for any guidance.