Problem
After upgrading a paedML Linux system, univention-check-join-status may report:
Error: Not all install files configured: 1 missing
In the observed cases, the affected join scripts were univention-directory-manager-rest and ucs-school-veyon-windows.
Investigation
Check /var/univention-join/status for malformed entries:
grep -n 'successful.*successful' /var/univention-join/status
An affected system showed two status entries concatenated into a single line:
univention-directory-manager-rest v2 successfulucs-school-veyon-windows v2 successful
Instead, both entries must be on separate lines:
univention-directory-manager-rest v2 successful
ucs-school-veyon-windows v2 successful
This also explains why univention-check-join-status reports the REST join script as missing while univention-run-join-scripts may still consider it already executed: the status check requires an exact line match, whereas the join script helper accepts a line beginning with the expected status string.
Root Cause
The immediate cause of the join status error is the malformed entry in /var/univention-join/status, where two successful join script entries are concatenated without a newline.
The underlying reason why the newline was lost could not be reproduced or determined from the available upgrade and join logs. The issue was observed only on some upgraded paedML Linux systems.
Solution
As a workaround, first create a backup of the status file:
cp -a /var/univention-join/status /var/univention-join/status.bak-$(date +%Y%m%d-%H%M%S)
Then split the known malformed entry into two separate lines:
sed -i 's/^univention-directory-manager-rest v2 successfulucs-school-veyon-windows v2 successful$/univention-directory-manager-rest v2 successful\nucs-school-veyon-windows v2 successful/' /var/univention-join/status
Verify the result with:
univention-check-join-status
The expected result is:
Joined successfully
This workaround corrects the malformed join status entry; it does not address the currently unknown cause of the missing newline.