v17.5 Release Notes

  • Reporting: Fixed two issues in the Dynamic Report Block: one where a report with an underlying circular-referencing Data View caused Rock to crash, and another involving multiple Data Views using the same "Not in Existing Data View" filter, which resulted in a shared reference error when selecting the combined report. These changes prevent invalid report configurations and improve stability.

  • Other: Fixed an issue where the CSV Import block would fail silently and not display a progress bar when certain data conditions existed, such as multiple Group attributes using the same key.

  • Event: Improved deletion safeguards in Event Registration. Added a warning when attempting to delete a registration entry or even the entire event instance that has active payment plans, preventing accidental orphaned payments. If deletion continues, those plans are now automatically deactivated on the payment gateway. Applied the logic to the unused obsidian block as well.

  • LMS: Improved the 'Learning Activity Available' System Communication to include direct links to the assigned learning activities, making it easier for individuals to access their content and begin training.

  • Connection: Fixed an issue where Connection Request workflows using a "Future Follow-up Date Reached" trigger would throw exceptions and fail to add the "Follow-Up Date Reached" activity.

  • CRM: Fixed an issue where using multiple impersonation tokens for the same person in the same browser session could cause errors. Now, Rock forces re-authentication if the token changes, even for the same individual.

  • CMS: Fixed an issue where the Content Channel Item View block and the InteractionContentChannelItemWrite Lava command logged interactions using the Content Channel entity type instead of the Content Channel Item entity type. This caused interactions to be misclassified and not tracked correctly.

  • Core: Fixed an issue where saving new Workflow Types or Registration Templates could result in duplicate records if an error occurred mid-save. Now, the save operation must complete fully or it will be rolled back entirely to maintain data integrity.

  • Check-in: Improved the layout of the Next-Gen Check-In schedule select screen when too many schedules were available to fit in one row. The screen will now wrap the buttons to multiple rows of buttons.

  • Prayer: Fixed the email link in the Obsidian Prayer Request Detail block so that clicking the Requested By Person’s email now opens the device’s default email app. Previously, clicking the link did nothing.

  • Prayer: Fixed the Prayer Request Detail Block to default the "Urgent" flag (IsUrgent) to false when not selected. This prevents sorting issues caused by NULL values.

  • Lava: Added an optional third parameter to the Attribute Lava filter to control security checks. When set to false, the filter bypasses attribute security, matching the behavior of the Entity command’s securityenabled parameter. Default behavior remains unchanged.

  • Core: Fixed an issue where the Obsidian Account Entry block would create a new person record even if the First Name field contained invalid input, such as "and", "/" or "&". The block now correctly prevents submission until a valid First Name is provided.

  • Group: Fixed an issue where starting a workflow to meet a group requirement multiple times between completing it would create duplicate requirement instances and workflows.

  • Core: Fixed an issue where Group Members previously associated with the "Application Group Member" role were incorrectly moved to a newly-added "Hidden Application Group Member" role, causing the photo verification process to fail.

  • API: Fixed an issue where trying to access a model's ./DataView/{id} endpoint would check permissions on the wrong entity. This often resulted in a permission denied error even when the Person or API Key had been granted explicit permission to the DataView.

  • Communication: Fixed handling of Twilio "undelivered" callback messages when the provided MessageSid does not match a recipient in Rock. These events no longer generate exceptions and are now logged at the Informational level.

  • Communication: Fixed the Obsidian Communication Entry Wizard block so Title and Paragraph blocks now obey global text-style settings (Font, Line Height, Justify Text, etc.). Also added a Justify Text option to Paragraph blocks for horizontal alignment.

  • Workflow: Fixed Date attributes saved by Workflow Actions to exclude time components. Values are now stored in yyyy-MM-dd format when the Attribute uses the Date FieldType.

  • Communication: Fixed the Obsidian Communication Entry block so its Document Root Folder and Image Root Folder settings now correctly limit the folders displayed in the File Browser and Image Browser, preventing access to unintended directories.

  • Check-in: Updated the Device List block to add filtering by the Active column. This restores the ability to view only Active or Inactive devices, which was missing in the initial Obsidian version.

  • Finance: Updated the legacy Scheduled Transaction Edit block name to include a "(Legacy)" suffix and renamed the newer improved "(V2)" version by removing the "(V2)" suffix.

  • Reporting: Added the ability to filter by Group Location Schedules to target more specific people based on their schedule for a group or sign up project in a data view.

  • Check-in: Fixed issue in Next-Gen Check-In with the Prefer Enrolled Groups setting. When enabled on a group that had only closed locations it would prevent check-in on other matching groups.

  • Check-in: Fixed error that prevented removing an individual with a 'Can Check-In' known relationship when using specific configuration options. If a single relationship type was configured for 'can check-in' then trying to remove somebody at a kiosk resulted in an error.

  • Check-in: Updated the "Select All Schedules Automatically" option to also disable showing of the skip screens during check-in. With this setting enabled, if an individual cannot be checked in for a service no message will display and they will silently be skipped and not checked in.

  • Communication: Improved several system notifications—including Group Attendance Reminders, Sign-Up Registration Confirmations, and Sign-Up Reminders—to check if the recipient has SMS enabled before choosing between SMS or email delivery.

  • Group: Fixed an error in the Group Schedule Toolbox that occurred when filtering Unavailability records by Group Type if entries were not linked to a Group.

  • CRM: Fixed an issue where the SMS Opt-In Message on the Public Profile Edit block did not honor the configured text from System Configuration and instead used a hard-coded message.

  • CMS: Fixed an issue where indexing a Content Collection threw an exception if a Content Channel Item contained an attribute value larger than Lucene's maximum field size, even when that attribute wasn’t selected for indexing.

  • Core: Fixed an issue where Entity Attributes on a Learning Course would not save.

  • Workflow: Fixed issue with the Obsidian Workflow Entry block, where it was showing form field labels when it shouldn't. The "Hide Label" was previously ignored, but it will now correctly hide the label on the form.

  • Lava: Fixed the ZebraPhoto Lava filter to return a default silhouette when no profile photo is assigned, restoring expected behavior that was lost in v16.

  • Workflow: Fixed issue that prevented the Obsidian Workflow Entry block from persisting workflows when using back to back entry forms. This caused the workflow to reset back to the beginning when submitting back to back forms.

  • CMS: Fixed Javascript Lava commands not working correctly when used inside a PreHtml or PostHtml field of a block's advanced settings. Previously these commands were processed, but the page header had already been written so they were effectively ignored.

  • Prayer: Fixed an issue where the Expiration Date field in the Prayer Request Detail block would not appear on smaller screen sizes.

  • Reporting: Fixed incorrect column data type inference in the Dynamic Data block when exporting to Excel, causing empty values.

  • Core: Removed the v17.2 change to the Database Maintenance job that set the default database index fill factor to 100%. The job now returns to its previous behavior while we take additional time to design a long-term solution that better balances index performance with minimizing unnecessary rebuilds.

  • CRM: Improved handling of NCOA Processing file imports (Step 2) to better manage incorrectly mapped records and reduce import errors.

  • Prayer: Fixed an issue where approving a Prayer Request in the Obsidian Prayer Request Detail block did not update the ApprovedOnDateTime and ApprovedByPersonAliasId fields.

  • Event: Fixed an issue where EventScheduledInstance Lava commands did not work in the Calendar Item List and Calendar Item Occurrence List blocks due to security changes.

  • Workflow: Updated the Group Member Add From Attribute action to return the newly added Group Member as a workflow attribute.

  • CMS: Fixed the Universal Search Re-Index job to complete successfully and run more efficiently in environments with large datasets when processing Person indexes.

  • Group: Fixed an issue where archived Group names were not displayed in the Attendance History block on a person's History page.

  • Check-in: Fixed an issue where loading the Obsidian Attendance History block without person context could cause severe performance issues and possible server crashes by attempting to load all attendance records. The block now prevents loading attendance data when context is missing.

  • Lava: Improved the FromIdHash Lava filter to return the integer value directly when a non-hashed ID string is provided, allowing templates to support both hashed and plain IDs.

  • Core: Fixed an issue where OpenID Connect (OIDC) sign-in consent settings could be shared between different individuals using the same browser or device, which could cause one person's consent to apply to another.

  • Communication: Updated the default SMS Opt-In/Opt-Out response messages to meet compliance standards for Short Code System Phone Numbers.

  • Event: Fixed an issue where the SMS Opt-in checkbox and related message appeared in the obsidian Registration Entry block even when “Show SMS Opt-in” was disabled in the Registration Template.

  • LMS: Fixed an issue in Learning Plan Assessments where switching between Multiple Choice and Short Answer activity types could cause the Question Weighting value to remain locked, preventing the plan from being saved.

  • Core: Fixed an issue where Single Select attributes with the Drop Down List (Enhanced for Long Lists) control type were skipped when tabbing. Tabbing now highlights the field and lets you use arrow keys to select a value.

  • Group: Improved performance of the Group Member List block by optimizing how requirements data is loaded. Requirements are now fetched once per member during the initial page load.

  • CMS: Fixed an error that occurred when editing a Content Channel Type with Attributes of type Image, File, or Binary File. The issue happened if the storage location was set to Azure Blob Storage or File System (or newly created FileType). This was resolved by setting a default CacheControlHeaderSettings value when new Binary File Types are created using the Obsidian BinaryFileTypeDetail block and a migration to update missing values.

  • Communication: Fixed TwilioSendGrid webhook so it does not throw exceptions when using SendGrid with marketing campaigns.

  • Core: Fixed an issue where backdated Notes could not be created even when the setting was enabled on the block.

  • Reporting: Fixed an issue where Data Views did not correctly filter by Campus on entities whose CampusId field was configured as a Campus field type.

  • Finance: Fixed an issue involving the Giving Automation Job where the Consistent and Occasional Giver stages did not consider the most recent gift, contrary to the description in the Giving Journey Settings.

  • CMS: Fixed an issue where adding a new Route would display a blank screen instead of opening the details page for editing. The issue was caused by validation being applied during the auto-edit process rather than only during Save.

  • CMS: Added new feature to Structured Editor that allows file attachments to be uploaded.

  • Finance: Fixed performance issue on the Pledges page that caused extremely slow load times when large numbers of pledge records were present.

  • Lava: Updated the IsInDataView filter to support passing the data view id as an int, Guid or IdKey in addition to string.

  • Communication: Fixed a frequent exception in SaveCommunicationTransaction that occurred when processing recipients with only an email address and no matching Person record.

  • Core: Fixed an issue where the Signature Documents pages were slow to load because of inefficient database queries.

  • CMS: Fixed an issue where the Personalized Segment pages were slow to load because of inefficient database queries.

  • Core: Fixed an issue where the SMS Opt-in field in Form Builder Templates always reverted to 'Hide' instead of saving as 'Show'.

  • Finance: FYI: The original TransactionEntry.ascx block has been renamed to TransactionEntryLegacy.ascx. This change helps distinguish it from the later version and does not affect the legacy block’s functionality.

  • Connection: Added CAPTCHA support to the obsidian Connection Opportunity Signup block. This setting helps prevent automated bots by requiring individuals to complete a verification step before submitting these forms. Administrators can enable or disable CAPTCHA within each block’s settings.

  • Security: Improved Security.

  • Finance: Fixed an issue in the TransactionList block on the Person Profile where Contributions with check images, when viewed using the "Transaction Details" mode, could display incorrect checks or none at all.

  • Check-in: Fixed an issue in the Windows Application for NextGen Check-in where label printers ignored the configured cut settings and instead cut after each label. There were no changes to Rock itself; just to the Windows Check-in Application.