Nextcloud Hub 31.0.3
10 April 2025
Nextcloud Hub version 31.0.3 is now available.
Upgrading to Nextcloud Hub 31.0.3
Nextcloud Hub 31.0.3 can be upgraded to (or installed) using any of Installatron's products. Use Installatron's optional Automatic Update feature to automatically apply Nextcloud Hub updates as new versions are released, or use Installatron's Clone feature to duplicate an existing Nextcloud Hub install to test the 31.0.3 upgrade prior to applying it live. Get started managing your Nextcloud Hub installations with Installatron
What's New in Nextcloud Hub 31.0.3
Bug Fixes and Changes
- Fix(files): also show file list headers on empty views (server#51275)
- Fix(dav): Create SAB at installation (server#51316)
- Fix: remote account activity translation (server#51326)
- Fix: Do not build encrypted password if there is none (server#51330)
- Feat(dav): add webhook compatibility for calendar object events (server#51331)
- Fix disabled user list for SAML group subadmin (server#51376)
- Fix(files_external): Stop building path twice when checking if file exists on case insensitive SMB storage (server#51388)
- Fix(CalDav): alter invitation attachment filename and type (server#51466)
- Fix(files_sharing): ensure share status action works also in grid view (server#51474)
- Fix(profile): allow to unset phone number (server#51511)
- Fix: skip caching lastSeenQuotaUsage for remote shares (server#51522)
- Fix(cardav): only show users from enabled addressBooks in contacts menu (server#51539)
- Enh: improve occ file:transfer-ownership logging (server#51561)
- Fix(unified-search): do not overlap search bar with button (server#51566)
- Fix(webauthn): adjust for updated library and add tests (server#51578)
- Fix: pass hide download attribute while creating the share to fix github issue 50788 (server#51582)
- Fix(files_sharing): skip expiration notify for invalid share record (server#51616)
- Fix(ocm): `publicKey` can be disabled so capabilities do not match (server#51653)
- Fix(files): Ensure actions never overflow filename (server#51659)
- Fix(IFilenameValidator): correctly handle case insensitivity (server#51662)
- Fix(user): Some strings not being translated (server#51666)
- Fix(provisioning_api): Pass on translated hint if password change fails (server#51672)
- Fix(setupchecks): Treat information messages as success (server#51678)
- Fix(database): Cast users count to integer (server#51688)
- Fix(systemtags): Dispatch events when bulk assigning system tags (server#51690)
- Perf(sharing): Use oc_share.item_type IN instead of OR equals (server#51691)
- Fix(dav): filter user files when updating tags (server#51693)
- Fix files_sorting cypress tests (server#51695)
- Fix(login): Improve CSRF error message for better user understanding (server#51699)
- Fix public download activity (server#51704)
- Fix: filter out contacts with empty email addresses in sharee completion (server#51708)
- Fix(GenerateBlurhashMetadata): Suppress imagescale errors (server#51718)
- Fix(occ): Suppress errors when checking config.php fileowner (server#51720)
- Fix(files_versions): correctly show version author also for shared files (server#51723)
- Fix(files_reminders): Fix reminder actions being displayed on invalid nodes (server#51738)
- Fix: task type translations (server#51741)
- Fix(files_versions): Rely on server mime fallback icons (server#51748)
- Fix(files): Properly encode URLs when preparing ZIP download (server#51751)
- Fix(theming): enforce theme also for login (server#51753)
- Fix: resolve typo in authMethod enum cases (server#51758)
- Fix: add event status and participant status (server#51770)
- Fix(settings): Fix infinitely loading account management page with pagination of groups (server#51781)
- Feat: Limit `ExpireTrash` job to 30 minutes (server#51808)
- Fix(dav): Give proper HTTP status code on MKCOL when quota exceeded (server#51813)
- Perf(cron): Delay (re)checking timed jobs (server#51820)
- Fix(files_reminders): Lower disabled notifications app error to info (server#51843)
- Fix: don’t have sabre/dav send it’s own reponse if we already send the zip response (server#51850)
- Fix(oauth2): retain support for legacy ownCloud clients (server#51859)
- Fix(encryption): init keys also when logged in using cookie auth (server#51865)
- Fix: use proper migration sorting when checking if a migration needs to be executed (server#51869)
- Fix(files): right click actions menu flicker (server#51871)
- Fix: Use login name to check the password (server#51880)
- Fix(settings): Handle email change restriction separately from display name change restriction (server#51901)
- Fix(session): Only mark sessions of permanent tokens as app passwords (server#51906)
- Fix: Catch exceptions when expiring trashbin (server#51912)
- Fix(workflowengine): require a web component as operation plugin (server#51915)
- Fix: ensure enabled themes are set on the template (server#51929)
- Fix(dav): Allow underscores on custom links (server#51981)
- Fix(cache): always require updates if mtime is null (server#51984)
- Revert “refactor: add migration for email setting” (server#51987)
- Fix(files_reminders): add missing import (server#51992)
- Feat(ip): use larger IPv6 range by default (server#52033)
- Refactor(RichObjectStrings): Only log error if key or value is not string in validator (server#52038)
- Revert “refactor(RichObjectStrings): Only log error if key or value i… (server#52059)
- Test: Use utils function from server and wait for requests (activity#1921)
- Fix: disable loading when there are no more activities to load (activity#1934)
- Feat: skip expire sharing notify if node deleted (activity#1937)
- Fix(settings): ensure we handle file_created, file_deleted and file_restored as file_changed (activity#1948)
- Revert “fix: disable loading when there are no more activities to load” (activity#1959)
- Fix(ActivityAppFeed): handle cases for non-scrollable container (activity#1964)
- Fix): AppAPI Proxy – invalid “content-length” (app_api#538)
- Fix: propagate group name changes (circles#1900)
- Fix(SyncService): Sync group display names (circles#1905)
- Composer upgrade and cs:fix (circles#1916)
- Ignore empty string when adding member (circles#1926)
- Only sync users on explicit request (circles#1930)
- Ignore non-existant users (circles#1937)
- Speedup circles fetching (circles#1950)
- Do not refresh display name on known local user (circles#1957)
- Chore(GA): update GA master (files_pdfviewer#1180)
- Update GitHub actions (files_pdfviewer#1181)
- Chore: update ci workflows (logreader#1568)
- Fix: Do not register listener when not in console (logreader#1578)
- Ci: Update workflows (nextcloud_announcements#464)
- Style: fix custom icon height (notifications#2264)
- Chore(deps): bump @nextcloud/vue from 8.23.1 to 8.24.0 (notifications#2281)
- Fix(l10n): Improve translation exclude list (photos#2906)
- Fix(l10n): remove breaking trailing dot after curly brace (photos#2911)
- Fix: resolve file version conflict during restore (text#6948)
- Fix flaky cypress tests (text#6968)
- Fix(ui): style conflict resolution buttons (text#6972)
- Fix(workspace): Use filecache existance for checking if readme exists (text#6975)
- Chore(deps-dev): bump psalm/phar from 5.26.1 to 6.5.1 (text#6980)
- Fix: replace deprecated translation methods (text#6981)
- Feat(session): Send save request via `sendBeacon` at `beforeunload` (text#7062)
- Fix(cypress): define visual regression threshold to 0.01 (viewer#2766)