Nextcloud version: 34.0.1
Encryption app version: 2.22.0
Deployment: Nextcloud AIO (ghcr.io/nextcloud-releases/aio-nextcloud)
Steps to reproduce:
- Enable the encryption app (occ app:enable encryption) and server-side encryption (occ encryption:enable)
- Navigate to Settings → Administration → Security in the web UI
Expected behavior: The encryption app's admin settings section (recovery key enable/disable toggle, recovery password fields, etc.) should render on the Security page, since OCA\Encryption\Settings\Admin::getSection() returns 'security'.
Actual behavior: Nothing renders. The page contains only an empty mount point:
(from apps/encryption/templates/settings.php), with no content inside it.
Root cause: The installed apps/encryption/ directory is missing its compiled JavaScript bundle entirely. Confirmed via direct filesystem inspection inside the container — the app directory contains only appinfo/, composer/, css/, img/, l10n/, lib/, and templates/; there is no js/ directory at all. The Vue component responsible for populating #encryption-settings-section (and the equivalent personal-settings section) has nothing to load, so the mount point stays empty with no console error surfaced to the user.
Impact: Admins cannot enable or configure the recovery key, and users cannot opt into password recovery, through the UI at all — the feature is effectively inaccessible via normal means. The backend logic itself is intact and functional (Recovery.php, KeyManager.php, RecoveryController.php); this is purely a missing front-end asset issue. Confirmed working when the same backend method (Recovery::enableAdminRecovery()) is invoked directly via a server-side script, bypassing the UI.
Workaround: None available through the UI. Requires direct backend invocation to enable the recovery key.
Nextcloud version: 34.0.1
Encryption app version: 2.22.0
Deployment: Nextcloud AIO (ghcr.io/nextcloud-releases/aio-nextcloud)
Steps to reproduce:
Expected behavior: The encryption app's admin settings section (recovery key enable/disable toggle, recovery password fields, etc.) should render on the Security page, since OCA\Encryption\Settings\Admin::getSection() returns 'security'.
Actual behavior: Nothing renders. The page contains only an empty mount point:
(from apps/encryption/templates/settings.php), with no content inside it.Root cause: The installed apps/encryption/ directory is missing its compiled JavaScript bundle entirely. Confirmed via direct filesystem inspection inside the container — the app directory contains only appinfo/, composer/, css/, img/, l10n/, lib/, and templates/; there is no js/ directory at all. The Vue component responsible for populating #encryption-settings-section (and the equivalent personal-settings section) has nothing to load, so the mount point stays empty with no console error surfaced to the user.
Impact: Admins cannot enable or configure the recovery key, and users cannot opt into password recovery, through the UI at all — the feature is effectively inaccessible via normal means. The backend logic itself is intact and functional (Recovery.php, KeyManager.php, RecoveryController.php); this is purely a missing front-end asset issue. Confirmed working when the same backend method (Recovery::enableAdminRecovery()) is invoked directly via a server-side script, bypassing the UI.
Workaround: None available through the UI. Requires direct backend invocation to enable the recovery key.