Notable Updates

Rock v19.0 Released April 6, 2026 (Currently in Alpha)



You can read the details on the official Release Notes page.

    API v19.0

    • Fixed authorization logic which prevented Execute Unrestricted Write from working without Execute Write also being granted. Fixes: #6602

    CMS v19.0

    • Fixed an issue where deleting an HTML Content block could also remove shared content for other linked blocks using the same Context Name block setting value. Rock now preserves shared content by allowing the source HtmlContent's BlockId to be null when a block is deleted.
    • Improved the Persisted Dataset feature by enabling auditing support to track creation and modification details. Also migrated all data from the legacy RefreshIntervalMinutes property to the new PersistedScheduleIntervalMinutes property, updated related jobs and blocks, and marked the old property as obsolete.
    • Updated the RegistrationTemplateDetail block to stop assigning individual security authorizations and instead rely on inherited security from the Registration Template's category. This aligns behavior with other blocks updated in earlier versions. See https://www.rockrms.com/tech-bulletin/registration-template-detail-authorization-changes. Fixes: #6440
    • Improved the Page Properties URL in CMS Configuration > Pages to use the page's Site domain instead of a relative path. This prevents links from resolving to the internal domain and ensures the URL opens the correct public-facing page.

    Check-in v19.0

    • Updated Check-in Manager Roster block to use newer Obsidian UI. The block will now also track changes in real-time as individuals are checked in.
    • Added new setting "Display Address on Families" to check-in configuration which controls if the family address is hidden, optional or required during NextGen Check-in.

    Communication v19.0

    • Improved the SMS Pipeline by adding a configuration option to each Action to enable the creation of a new Communication record when sending a response to an incoming SMS. This allows better tracking of automated outbound responses.
    • Added a "Communication Access Mode" setting to the Communication Detail Block along with a new "View All" security action. The default mode is "Strict", which limits viewing of Communication details to the individual who created or sent the Communication unless the viewer has the View All permission. These options combine to give administrators clearer control over who can view Communication details. To learn about action you might need to take, please read the Tech Bulletin item on this topic.
    • Updated Bulk Email handling to show Bulk classification instead of hiding it when limits are exceeded, added Block Settings to customize Personal and Bulk labels and descriptions, and improved Communication Wizard help text for clarity.

    Core v19.0

    • Improved performance of Update Persisted Attribute Values job when dealing with certain field types that caused extra database queries.
    • Fixed issue where refreshing cache displayed an error when the App_Data/Cache folder did not exist. The Rock Cleanup job deletes the App_Data/Cache folder, and if no file types are configured to cache to the server, the folder may not get recreated. Previously, the Clear Cache button would throw a DirectoryNotFoundException in this case. Now it checks for the directory's existence before attempting to enumerate and delete its contents. Fixes: #6745
    • Fixed an issue in multiple attribute editing blocks where the Category dropdown included Global Attribute categories instead of categories for the attribute’s actual entity type. Fixes: #6729
    • Added a page and a block for displaying Rock MCP Servers.
    • Updated the Obsidian grid's Quick Search field so that it is preserved when clicking a row in the grid and then clicking the back button.
    • Added a comment to the RockNextGen Theme CSS explaining why two color-interface variables appear inverted in Dark mode to prevent accidental changes related to issue. Fixes: #6645
    • Updated legacy WebForms block registration to occur only during Rock startup, improving performance when loading certain pages like PageZoneBlocksEditor and MobilePageDetail. Manual registration after startup can still be triggered using the Clear Cache button in the System Information window. To learn more, please read the Tech Bulletin item on this topic.
    • Improved the Campus Detail block by introducing a new Campus Schedules feature to replace the legacy "Service Times" field, which now appears in a new Legacy section. Also updated the block's layout to enhance usability.
    • Fixed an issue where deleting a Campus would also delete associated Attendance, Prayer Request, and Registration records. These records are now safely detached before the Campus is removed. Fixes: #6563

    CRM v19.0

    • Improved the Person Duplicate Detail block by displaying the Record Source of each individual, helping administrators make more informed and faster merge decisions.

    Engagement v19.0

    • Improved the process of adding individuals to an LMS class by adding a "Save Then Add" button. This allows administrators to add multiple students more efficiently without reopening the "Add Student" dialog each time.
    • Improved Person Merge to support merging duplicate people enrolled in the same class with completed assignments. During the merge, the student record with the most completed assignments is preserved and the other record is removed.
    • Fixed an issue where merging person records could remove a Sign-Up Opportunity attendee when both records were registered for different opportunities within the same Sign-Up Group. The merge process now correctly reassigns Sign-Up Opportunity attendee records to the surviving Group Member so registrations are preserved. Fixes: #6572

    Event v19.0

    • Added a Prevent Duplicate Registrants setting to the Registration Template that prevents the same person record from registering for the same Registration Instance more than once. When enabled, the Registration Entry Block checks for existing registrants during the Registrants step. If the person is already registered for the event, the registration is blocked and a message indicates they are already registered. Additional validation occurs before submission and evaluates all registrants in multi-registrant entries. The registration is prevented if any person in the registration is already registered for the event.
    • Added Registrant eligibility rules to the Registration Template Detail Block and updated the Registration Entry Block to prevent incorrect family member registrations. Added new "Registrant Eligibility" settings to the Registration Template Detail Block that allow administrators to limit registrants by Age (minimum and maximum values with decimal support), Grade (minimum and maximum values), Gender (Male or Female), and Age Classification (Adult or Child). When multiple rules are enabled, registrants must meet all selected criteria to register. These rules filter the Family Member to Register dropdown and are validated during registration when registrants are added. Updated the Registration Entry Block so that when "Registrants In Same Family" is set to "Yes" or "Ask", the Family Member to Register dropdown defaults to blank when the Registrant page first loads, instead of automatically selecting the first family member. This requires an intentional selection and reduces accidental self-registration.
    • Updated Event Registrations to remove support for legacy digital signature providers, including SignNow, as part of platform cleanup aligned with the Rock product planning roadmap:

    Finance v19.0

    • Improved Text-to-Give failure handling by deleting the pending transaction after the giver has been notified when an automated transaction attempt fails. Previously these pending transactions remained and could cause incorrect totals in the Batch Detail and Transaction List Block.
    • Added Giving Date Range filter to Financial Pledge Analytics block to limit gift transactions by date. Renamed existing date filter to Pledge Date Range for clarity.

    Group v19.0

    • Improved performance of the Calculate Group Requirements job for large groups. Fixed issues that prevented outdated group member requirements from being deleted, ensured workflows run again when an individual newly meets a requirement, and added logic to retroactively evaluate manual group requirements. Fixes: #6594 #6595
    • Improved the Group Scheduler block to keep the occurrence date and its Schedules fixed at the top of the screen while scrolling. Additionally, the Group name now appears above each Location. These updates make it easier for a scheduler to stay oriented while assigning individuals, especially during long scheduling sessions.
    • Improved performance of the Group Scheduler block when viewing multiple groups over several weeks. The update reduces unnecessary database calls that were slowing down the page load, especially in large scheduling scenarios. Fixes: #6662
    • Improved Group Member Requirements by adding the GroupMemberRequirementState property, which shows whether a requirement is met, met with a warning, or not met, helping administrators quickly understand a group member’s eligibility and any potential concerns.
    • Fixed an issue in the Group Scheduler Block that prevented an individual from being scheduled when they had a Group Requirement in a warning state, such as a background check that was close to expiring. Individuals with warning-level requirements can now be scheduled as expected. Fixes: #6654

    Lava v19.0

    • Added a new ToBase64 filter that encodes a string or byte collection as a Base64 string. This complements the existing Base64Encode filter, which is intended for Rock BinaryFiles.
    • Added a new Lava PrintZpl command that sends enclosed ZPL content directly to a Zebra printer.
    • Added support for an optional 'contains' comparison parameter in the "Where" Lava filter to allow partial value matching when filtering. This allows Lava authors to return items where a field contains a specified value instead of requiring only 'equal' or 'notequal' comparisons.
    • Added Body and RawBody merge fields to Lava Applications.
    • Fixed discrepancy between forloop.rindex/forloop.rindex0 values in Fluid vs DotLiquid templating engines. Fixes: #6281
    • Fixed an issue where saving a Lava Shortcode on the Lava Shortcode Detail page would incorrectly display an error message, even though the shortcode saved successfully. Fixes: #6610
    • Added a new Shortcode Scope Behavior property to the Lava Shortcode Entity. This setting allows Rock administrators to choose whether variables defined inside a shortcode should be isolated from or shared with the surrounding Lava. This helps prevent unintended variable conflicts in more complex Lava templates. Also refreshed the layout of the Lava Shortcode List and Detail blocks using updated Obsidian UI components for improved clarity and usability. To learn more, please read the Tech Bulletin item on this topic.

    Reporting v19.0

    • Removed the Dynamic Heat Map Block because the Google Maps JavaScript API no longer supports the Heatmap Layer feature. See the v19.0 Heads-Up note for details.

    Workflow v19.0

    • Added two new Workflow Action Types: Chat Channel Message Send and Chat Direct Message Send. These actions enable a Workflow to send a message either to a Chat Channel or directly to a person within Rock’s Chat system.