Rock v19.1
Released May 20, 2026
(Currently in Beta)
You can read the details on the official
Release Notes page.
API v19.1
-
Fixed authorization logic which prevented Execute Unrestricted Write from working without Execute Write also being granted.
Fixes:
#6602
CMS v19.1
-
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.
-
Fixed the admin toolbar impersonation button being unreadable due to white-on-white text in v2 and v1 themes.
Fixes:
#6791
-
Fixed the Benevolence Request Detail block to display entity attributes in view and edit modes.
Fixes:
#6801
-
Fixed an issue where the dropdown arrow on the Login Status block appeared below the logged-in person's name instead of next to it.
Fixes:
#6805
-
Fixed an issue in the Content Channel View block where changing the Meta Image Attribute caused an error.
Fixes:
#6804
-
Fixed an issue where the Persisted Dataset Detail block would not save the persistence schedule when leaving the Interval at the default 12 hours.
Fixes:
#6830
Check-in v19.1
-
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.1
-
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.
-
Fixed the email editor's section action menu to correctly show Edit and Delete options for sections the current person created.
Fixes:
#6777
-
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.
-
Fixed the Communication Unsubscribe Report to correctly display all unsubscribed recipients, including those from older communications that were missing some date information.
Fixes:
#6803
-
Fixed a dark mode issue and other minor display issues in System Communication Preview.
Fixes:
#6782
-
Fixed phone numbers being incorrectly marked as opted out of messaging when Twilio reported a bad-number error (landline, invalid mobile, unreachable carrier, etc.) instead of an actual recipient opt-out.
Fixes:
#6816
-
Fixed the Communication Template Categories page breadcrumb showing the page name twice.
Core v19.1
-
Fixed an issue where Obsidian Grid exports could fail when the export title contained characters not allowed in Excel worksheet names (* ? : \ / [ ]) or exceeded 31 characters.
Fixes:
#6821
-
Added a new Schedule Builder Field Type and Attribute that allows administrators to create and select custom schedules using the standard Schedule Builder interface.
-
Added an automatic data migration that moves File Storage Provider settings from any existing legacy Azure Blob Storage provider plugin (Pillars) to the core Azure Blob Storage provider. This is required because the legacy provider can no longer upload large files due to library updates in v19. All settings are carried over, related File Types are updated, and the legacy provider stays active so existing files continue to work.
-
Fixed the Notes block to show the note type filter even when the user does not have permission to add a new note.
Fixes:
#6770
-
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 missing Tabler icons references and fixed incorrect FontAwesome references. This fixes and updates pages, note types and content channels that had incorrect references. There is no need to re-run the SQL migration script.
Fixes:
#6766
-
Fixed the Obsidian Notes block filter dropdown to hide note types the current person does not have View permission for.
Fixes:
#6787
-
Fixed an issue where the Content Section Navigation control used within many administrative blocks did not scroll when the list of sections was longer than the available vertical space. Individuals can now scroll the main content of the page and the list of sections separately from one another.
Fixes:
#6798
-
Fixed issue that prevented anonymous individuals from adding defined files on a workflow entry form configured with a defined value field type even though 'Allow Add' was enabled.
Fixes:
#6807
-
Added a new Schedule Builder Field Type and Attribute that allows administrators to create and select custom schedules using the standard Schedule Builder interface.
-
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
-
Fixed an issue where the Schedule Category Exclusion List block showed a confusing error to individuals with View-only access. They now see the grid data with a note that Administrate access is required to make changes.
Fixes:
#6819
CRM v19.1
-
Improved the Person Duplicate Detail block by displaying the Record Source of each individual, helping administrators make more informed and faster merge decisions.
-
Fixed an issue on the Bio block where phone links did not include a country code, preventing international calls from starting when clicked.
Fixes:
#6774
Engagement v19.1
-
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.1
-
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:
-
Fixed Event Occurrence Attributes with "Show in Grid" enabled not appearing in the Event Occurrences list.
-
Fixed an issue where editing an Event Occurrence Attribute on the Event Item Detail block would incorrectly reject the attribute key value with a validation error, preventing the attribute from being saved.
-
Fixed an issue in the Obsidian Registration Entry block where percentage discounts producing fractional-penny totals could block submission because the default "Amount To Pay Today" value exceeded its own validation limit.
Fixes:
#6822
-
Fixed an issue in the Registration Instance Registration List block where the Discount Code column on the Registrations tab was hidden when the registration template had no per-registrant cost, even if a discount code was applied to fees on the registration.
Fixes:
#6826
Finance v19.1
-
Fixed an issue where solving the CAPTCHA on the Utility Payment Entry block could wipe out payment information typed into the hosted gateway iframe.
Fixes:
#6832
-
Fixed slow performance on the Giving History API endpoint. Response times are significantly improved for organizations with large giving history data.
Fixes:
#6818
-
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.
-
Fixed an issue where Contribution Statements included the name of a household member who had opted out of Combine Giving in the report salutation, even though their transactions were not included.
Fixes:
#6765
-
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.1
-
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
-
Fixed the Due Date not displaying for Data View and SQL Group Requirements on the Fundraising Opportunity participant page.
Fixes:
#6817
-
Fixed the Group Detail Lava block to hide the delete (X) icon when "Allow Group Member Delete" is disabled and updated the confirmation dialog wording to use "remove" instead of "delete" (since members may be archived rather than deleted when Group History is enabled).
Fixes:
#6808
-
Fixed the `Due Date Group Attribute` dropdown on the GroupTypeDetail block for group requirements to only list Date and DateTime attributes.
Lava v19.1
-
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.
Mobile v19.1
-
Fixed an issue where rapid check scanning in the Financial Batch Detail block could fail to save MICR data due to disposed-context and cross-thread transaction errors.
Prayer v19.1
-
Improved the Prayer Request List block to display prayer request text at a wider width for better readability.
Fixes:
#6824
Reporting v19.1
-
Fixed an issue where Data Views would fail to load if a referenced Registration Template had been deleted. Added handling to gracefully check missing templates so the Data View can still load and be edited.
Fixes:
#6756
-
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.1
-
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.
-
Fixed an issue where the Obsidian Workflow List block would time out when loading workflows assigned to groups with many members.
-
Fixed the SMS consent checkbox in the Person Entry workflow form to use the system-configured message.
Fixes:
#6827
-
Fixed the Campus selection to be required in the Person Entry form when using the Obsidian Workflow Entry block.
Fixes:
#6829