Skip to main content

Moodle 5.2

Unreleased Moodle Version
This version of Moodle has not yet been released.
The code freeze date for this release is 16 March 2026.

Release date: 20 April 2026

Here is the full list of fixed issues in 5.2.0.

If you are upgrading from a previous version, please see Upgrading in the user docs.

Server requirements

These are just the minimum supported versions. We recommend keeping all of your software and operating systems up-to-date.

  • Moodle upgrade: Moodle 4.4 or later (increased in this Moodle version).
  • PHP version: minimum PHP 8.3.0 (increased in this Moodle version). PHP 8.4.x is supported too. See PHP for details.
  • PHP extension sodium is required. See Environment - PHP extension sodium.
  • PHP setting max_input_vars must be >= 5000. For further details, see Environment - max input vars.
  • PHP variants: Only 64-bit versions of PHP are supported.

Database requirements

Moodle supports the following database servers. Again, version numbers are just the minimum supported version. We recommend running the latest stable version of any software.

DatabaseMinimum versionRecommended
PostgreSQL16 (increased in this Moodle version)Latest
MySQL8.4 (last increased in Moodle 5.0)Latest
MariaDB10.11.0 (last increased in Moodle 5.0)Latest
Aurora MySQL8.0Latest
Microsoft SQL Server2019 (increased in this Moodle version)Latest

Please note that Oracle Database is no longer supported from Moodle LMS 5.0.

Database prefixes

Since Moodle 4.3, the maximum length for the database prefix ($CFG->prefix) is 10 characters. Installation or upgrade won't be possible with longer prefixes.

Important

For all requirements it is recommended to use the latest point release of that version as a minimum.

In some cases earlier versions of a requirement may be noted, but may be pre-release versions.

Aurora MySQL compatibility version

This system requires configuration using standard MySQL version numbers (for example, 8.0) rather than Aurora's internal versioning (for example, 3.x) to maintain compatibility with MySQL client tools, version-dependent features, and database detection methods.

Client requirements

Browser support

Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers:

Desktop:

  • Chrome
  • Firefox
  • Safari
  • Edge

Mobile:

  • MobileSafari
  • Google Chrome

For the best experience and optimum security, we recommend that you keep your browser up to date.

Major features

Improved Dashboard experience - phase 1

  • MDL-88206 - Administration: Set default login background image for the new design
  • MDL-87556 - Authentication: Update MFA page design
  • MDL-87553 - Administration: Clean up login page settings
  • MDL-87546 - Authentication: Update login page design
  • MDL-87545 - Administration: New installs disable My Home
  • MDL-87544 - Administration: New installs disable My Courses
  • MDL-87528 - Authentication: New installs enable password visibility option on small screens by default
  • MDL-87527 - Authentication: New installs enable email login by default
  • MDL-87525 - Authentication: New installs guest login button disabled by default
  • MDL-87523 - Authentication: New installs force login on by default
  • MDL-87876 - Block: Course overview add persistent create/ manage courses
  • MDL-87542 - Dashboard: New installs calendar block location
  • MDL-87540 - Dashboard: New installs add Course Overview block to Dashboard

Assignment marking workflows improvements - phase 1

  • MDL-86006 - Support multiple markers and grade calculations

AI new features and improvements

  • MDL-82731 - New AI provider Plugin - AWS Bedrock
  • MDL-87513 - New AI provider Plugin - Gemini (integration and update of community plugin to core)

Course linear navigation

  • MDL-88061 - Restricted URL for non-restricted elements should redirect to the element's "view" page
  • MDL-87931 - Move dates above the secondary navigation in activity page
  • MDL-87929 - Restricted page: Display the availability conditions expanded
  • MDL-87891 - Replace the drawer close icon
  • MDL-87863 - Add course title with link to sticky header in course index
  • MDL-87712 - Implement redesigned dates in activity page
  • MDL-87689 - Implement temporary visual highlighting for anchor link navigation
  • MDL-87671 - New restricted page for restricted sections with visible restrictions for the user
  • MDL-87663 - Display "Done" status label in activity header for automated completion criteria
  • MDL-87662 - Relocate manual completion button to activity header
  • MDL-87660 - Implement redesigned automatic completion criteria in activity page
  • MDL-87658 - Remove AI options from the restricted page
  • MDL-87616 - Modernise the Book activity navigation buttons
  • MDL-87304 - Navigation footer: Remove specific sticky footer implementation from mod_data
  • MDL-87301 - Navigation footer: Adapt width to account for course index
  • MDL-87283 - New restricted page for restricted modules with visible restrictions for the user
  • MDL-87623 - Subsections: Implement redesigned subsection display
  • MDL-87281 - Subsections: Create a way to delete or migrate existing descriptions to Text&Media
  • MDL-87280 - Subsections: Create a task to remove existing descriptions
  • MDL-87279 - Subsections: Remove description from settings page
  • MDL-87276 - Subsections: Remove subsection pages

Moodle Design System phase 1 - tokens

  • MDL-87909 - Add the Moodle Design System as an external bundle into core
  • MDL-87730 - Include the Moodle Design System NPM package into core

Add base React functionality

  • MDL-87987 - Add profiling capability to the React system
  • MDL-87922 - Add the importmaps and other require code to interact with the React build system
  • MDL-87908 - Add the React library as an external bundle into core
  • MDL-87765 - Integrate and optimise the React mustache template helper and auto init code into core
  • MDL-87759 - Integrate and optimise React build code into core

Support installation using Composer

  • MDL-87950 - Provide third-party libraries via Composer
  • MDL-87713 - Switch from individually specified testing dependencies to "moodle/moodle-testing" Composer dependency

Quiz and Question bank

  • MDL-84988 - Make question bank categories collapsible
  • MDL-84987 - In-place editing of question bank category names
  • MDL-85002 - Update all tertiary navigation with consistent UI
  • MDL-85649 - On the question bank page show amount of questions for each bank
  • MDL-87264 - Move entire question categories, complete with questions and subcategories, to a different question bank
  • MDL-87633 - Align in-place editing of question names with activities/category name editing behaviour
  • MDL-86378 - Add option to capture user and group override reason for assignments, quizzes, and lessons

Report builder

  • MDL-84082 - Support wildcards in "Browse user list" filters
  • MDL-86699 - Establish consistent reporting for course module-related custom reports
  • MDL-86396 - Add database read/write count filters to Task logs report
  • MDL-86385 - Inform user via toast notification when a report schedule is enabled/disabled
  • MDL-87517 - Improve report builder table loading icon styles

Accessibility improvements

  • MDL-87895 - Improve Custom Field management pages UI
  • MDL-86846 - Use native button element for the core/drag_handle template

Usability improvements

  • MDL-84909 - TinyMCE/Manage Files: Add "Select all/none" option for Unused files checkboxes
  • MDL-86995 - Make Q and A forum usable for live situations
  • MDL-76823 - Move submit buttons in often used forms to sticky footer
  • MDL-75621 - Jump to the corresponding anchor after adding or editing an activity/resource
  • MDL-66888 - Add sort by course start date to My Courses block
  • MDL-61588 - File upload with limited file types: improve the message if you upload the wrong type
  • MDL-87117 - Update activity chooser descriptions to make them more helpful and relevant
  • MDL-87008 - Add submit buttons in sticky footer to edit profile (user/edit.php), too
  • MDL-86832 - Remove the activities block
  • MDL-84866 - Add "Duplicate" option to subsections action menu
  • MDL-83854 - Add hover lines to move activity and section modals to show the location
  • MDL-80983 - Handle the languages of the OAuth2 button in the login page

Other Highlights

Functional changes

  • MDL-83243 - SCORM keep-alive aligned with session timeout
  • MDL-85517 - Make resetting of large courses asynchronous
  • MDL-81559 - When moving an event the end date should be adjusted
  • MDL-87228 - Add more options for automatic locking of an individual forum discussion after a period of inactivity
  • MDL-87831 - Reposition user avatar to the right
  • MDL-87243 - Standardise font size of enrolment method form titles
  • MDL-86966 - Change LMS base font size to 16px
  • MDL-84440 - Configurable default backup file names

For administrators

  • MDL-78476 - Add rich text editor/file support to the site wide notes feature
  • MDL-85498 - Multi-language support for additionalhtmlfooter
  • MDL-87648 - Add environment checks to ensure that Routing is configured
  • MDL-87494 - Update the design of the "Mobile app subscription" page
  • MDL-87649 - More clearly display suspended status of students in profile page and user management page
  • MDL-87619 - Create an admin setting to allow loading certain scripts in the Moodle app
  • MDL-87506 - Improve the course delete CLI to delete via shortname or ID number
  • MDL-87329 - Users able to see global settings should be able to see the current mobile app subscription page
  • MDL-87173 - Make kill_all_sessions.php more flexible
  • MDL-87082 - New tool/mobile endpoint to allow set the site referer when embedding remote content on the app
  • MDL-86899 - New "Mobile app features" setting to allow adding "Custom user menu items"
  • MDL-86638 - Add extra debugging output in update_overdue_attempt schedule task to aid diagnosis
  • MDL-85233 - Remove MimeTeX as a TeX filter option

Performance

  • MDL-86970 - Asynchronously resend SMS notifications when gateway is not available
  • MDL-85336 - Split Redis connectiontimeout into timeout and read timeout

Security improvements

  • MDL-87914 - Switch from PHP serialization to JSON in Flickr public repository
  • MDL-87168 - Do not send current email address to AirNotifier while requesting an access key

For developers

  • MDL-77894 - Allow themes to include original when overriding a template
  • MDL-79574 - Persistent get_records index should match standard get_records
  • MDL-86119 - Remove YUI TreeView from mod Folder
  • MDL-87867 - Implement a JavaScript module to handle deprecation of code
  • MDL-87703 - Have ability to mark one or more database tables as needing to be on the writer database connection with read replicas
  • MDL-87045 - Create Open Telemetry integration
  • MDL-86579 - Remove PHPUnit deprecations from core_courseformat PHPUnit tests
  • MDL-86342 - Allow mod_assign subplugins to backup/restore data at activity-level

Web service additions and updates

  • MDL-87034 - Expand the core_webservice_get_site_info web service to return whether the user has site administration capabilities and the site secret
  • MDL-87003 - The public web service tool_mobile_get_public_config should return additional login and authentication configuration
  • MDL-86932 - Extend the existing mod_choice_get_choice_results web service to return the current user answer
  • MDL-86916 - The quiz web services cannot be used to obtain the overall feedback when the Marks review option is disabled
  • MDL-86893 - BigBlueButton web service mod_bigbluebuttonbn_meeting_info should indicate when a user should wait for a moderator to join
  • MDL-84960 - Extend existing web services returning users information to also return initials

Deprecations

  • MDL-79182 - Deprecate core/modal_factory and core/modal_registry
  • MDL-87000 - Deprecate enrolment report entity-specific formatter methods
  • MDL-86997 - Deprecate unused filter manager methods in report builder
  • MDL-88085 - Deprecate unused drawer icons
  • MDL-81962 - Final deprecation of moodle-core-notification features
  • MDL-81961 - Final deprecation of question-chooser
  • MDL-87427 - Final deprecation (removal) for 2.x methods
  • MDL-87426 - Final deprecation (removal) for 3.x methods
  • MDL-87425 - Final deprecation (removal) for 4.x methods <= Moodle 4.4
  • MDL-78325 - Final deprecation of the basewidget JavaScript and templates in core_grades
  • MDL-82284 - Remove deprecated PHP <7 constructors
  • MDL-87423 - Remove old deprecations <= Moodle 4.4 from lib/deprecatedlib.php
  • MDL-86607 - Remove/deprecate remaining SESSION access in Feedback module

Component API updates