Iceland - Minor (23.8)
KAPI-5940 Rightrez Logging - Unable to completed ASYNC job (ST-3349)
KAPI-5940 Rightrez Logging - Unable to completed ASYNC job Right Rez Failures in the PNR import/update and RightRez shell creation async jobs are now logged to the centralised error logging system. Previously, errors in these async flows were silently swallowed, making them invisible in Grafana. Failed jobs now trigger an async ApexLogger entry, ensuring errors are captured in Loki and visible for monitoring and debugging.
KAPI-7455 Can Launch into RightRez with Mismatched Passenger Dates from Flights Tab (ST-3345)
KAPI-7455 Can Launch into RightRez with Mismatched Passenger Dates from Flights Tab Right Rez The Flight Passengers grid now validates that all selected passengers share the same arrival and departure dates before allowing flight shopping actions. If passengers with mismatched travel dates are selected, the Send to GDS, Shop Flights, and Find Flights buttons are disabled and a warning is displayed. This prevents the risk of booking flights against incorrect dates, which previously occurred because the system used only the first selected passenger's dates when multiple passengers were selected.
Adjustments tab — tooltip and column alignment cleanup (ST-3332)
Adjustments tab — tooltip and column alignment cleanup Adjustments The adjustments panel has been updated with a number of display improvements. Column headers for *Total Price* and *Outstanding* now include tooltip helptext, and the *Impacts Commission* column has been widened and given its own helptext icon for consistency. Currency codes are displayed inline next to monetary values across all rows and totals, rather than being embedded in the formatted number. Row indentation and column alignment have been tidied up across new, existing, and deleted adjustment states. The *Discard Changes* button in the reset modal has been changed from destructive (red) to neutral styling. Additionally, passenger-level totals and outstanding amounts now update immediately when an adjustment is added or removed, ensuring the parent room totals stay in sync without requiring a page refresh.
KAPI-7442 RightRez Call back to match RESNO when spaces are removed by GDS (ST-3329)
KAPI-7442 RightRez Call back to match RESNO when spaces are removed by GDS Right Rez Fixed an issue where PNR callback matching was failing for tour codes with fewer than 3 characters. When a GDS removes spacing from the reservation number on callback, Kaptio was unable to match it back to the correct passenger record. The system now generates normalised candidate reservation numbers to account for this spacing difference, ensuring 1 and 2 letter tour codes resolve correctly on PNR import.
KAPI-7416 Airfare & cancellation fees showing up erroneously aligned to GOT promo line item on Booking Overview (ST-3328)
KAPI-7416 Airfare & cancellation fees showing up erroneously aligned to GOT promo line item on Booking Overview Booking Overview Fixed Booking Overview misalignment where airfare cancellation fees and other amounts displayed next to the wrong line item under Cancelled/Transferred Passengers when an item had an associated promotion (e.g. Gift of Time)
RightRez_HelpText of Button Visibility Rules is not displayed correctly (ST-3323)
RightRez_HelpText of Button Visibility Rules is not displayed correctly Right Rez The inline help text for the Button Visibility Rules field on the Flights Configuration custom metadata type has been shortened so it displays cleanly without spilling over adjacent fields. The previous text included the full JSON rule shape inline, which was too long to render correctly in the metadata layout. It now directs administrators to the packaged admin documentation for the JSON format instead.
Adjustment service can be cancelled via Cancel services (ST-3320)
Adjustment service can be cancelled via Cancel services Adjustments Fixed an issue in the Booking Overview where adjustment items were incorrectly appearing in the Cancel Services modal and could trigger the button's display. Adjustments should only be managed through the Adjustments tab; like flights, they are now excluded from the standalone service detection logic that controls whether the Cancel Services button is shown, and from the list of services presented in the modal itself. Additionally, a new `bookingOverviewConfiguration` property has been added to the Booking Overview component, allowing administrators to configure feature flags via App Builder. The Cancel Services button can now be hidden entirely for a given page layout using the following configuration: ```json {"features": {"hideCancelServicesBtn": true}} ```
KAPI-6436 Transfer Package to water tour(GLE 2026) - Cabin Category and also Cabin search is not visible in Booking Wizard though cabin inventory is available[1 cabin is available] (ST-3317)
KAPI-6436 Transfer Package to water tour(GLE 2026) - Cabin Category and also Cabin search is not visible in Booking Wizard though cabin inventory is available[1 cabin is available] Transfer Fixed booking wizard cabin selection occasionally returning no cabins when the user's own temporary hold consumed the last available unit
KAPI-4303 When the linked passenger is updated to one without an email address, the email from the previously linked passenger is retained on the PGI. (ST-3316)
KAPI-4303 When the linked passenger is updated to one without an email address, the email from the previously linked passenger is retained on the PGI. Passenger Grid Relinking a contact now correctly clears values that do not exist on the newly selected contact.
KAPI-7199 RightRez does not populate with Deviate when pre/post on itinerary (ST-3309)
KAPI-7199 Volare does not populate with Deviate when pre/post on itinerary Right Rez When shopping for flights on a booking that includes pre-stay, post-stay, or Hotel On Own nights that extend beyond the core tour dates, RightRez will now receive a `componentType` of `Deviate` instead of `Hotel`. Previously this was always sent as `Hotel`, which caused RightRez to display warnings because it was trying to match flights against the tour start date rather than the passenger's actual earlier arrival or later departure. Bookings with no pre/post extension continue to send `Hotel` as before, and the Shell PNR flow is unaffected.
KAPI-7214 Air with Redress number on file - TC3194 (ST-3304)
KAPI-7214 Air with Redress number on file - TC3194 Right Rez Redress numbers are now correctly included when sending passenger details to the GDS via Shop Flights, Find Flights, and Send to GDS. Previously, known traveler numbers were being passed through but redress numbers were not, despite being stored on the passenger record. A new configurable field ("Redress Number Field") has been added to the Flights Configuration custom metadata type, allowing administrators to specify which field on the Passenger record holds the redress number. This is mapped to the existing traveler number field. The field supports both direct field names and relationship paths, and leaving it blank will simply skip sending a redress number, so there is no impact on orgs that do not use this feature.
KAPI-7284 Frequent Fly Number is not populated in RightRez when present in Salesforce (ST-3301)
KAPI-7284 Frequent Fly Number is not populated in Volare when present in Salesforce Right Rez When booking flights through RightRez, passengers' Frequent Flyer Numbers (FFNs) are now correctly included in the booking payload. Organisations that store FFN data as flat fields on the Passenger record can configure the integration via **Setup > Custom Metadata Types > Flights Configuration** to read from those fields directly. Up to three FFNs will appear on the final confirmation page before booking. Organisations using Frequent Flyer child records are unaffected — existing behaviour remains unchanged.
KAPI-7228 Pass Hotel on Own Arrival and Departure to RightRez (ST-3300)
KAPI-7228 Pass Hotel on Own Arrival and Departure to RightRez Right Rez Passenger arrival and departure dates are now recalculated to include Hotel On Own (HOO) pre/post nights that are assigned outside the standard Kaptio Package flow. Previously, only pre/post nights linked via the Kaptio Package field were reflected in a passenger's arrival and departure dates, meaning HOO nights using a customer's custom field were ignored when launching Shop Flights, Find Flights, and Send to GDS. Dates are now recalculated automatically when saving via the Itinerary Builder or when adding/removing pre/post options through Booking Overview. A new global method (`GlobalPassengerTravelDateService`) is also available for administrators to trigger recalculation on demand — for example, after a data migration or to correct date discrepancies on existing itineraries.
KAPI-7233 Shell-PNR with Incorrect End Location (ST-3299)
KAPI-7233 Shell-PNR with Incorrect End Location Right Rez Resolved an issue where the outbound end location shown on air ticket shells was displaying the wrong airport. The UI was incorrectly referencing the `arrivalAirport` field for the end location, when it should have been using `departureAirport` (which maps to the package start location). This caused incorrect cities to appear on shells for affected bookings — for example, Canadian bookings were showing an incorrect city instead of CDG (Paris), and Switzerland tour bookings were showing the wrong city instead of GVA (Geneva). US bookings where the tour start and end locations happened to align were unaffected. The field binding has been corrected and test coverage updated to clarify the mapping between field names and their UI representation.
KAPI-7229 Shop Flights restricted on Call To Sell Passengers (ST-3298)
KAPI-7229 Shop Flights restricted on Call To Sell Passengers Right Rez Two new access control features have been added to the flights tab. First, a new `SendToGDS` custom permission has been introduced — users must be explicitly granted this permission to send passengers to GDS, and an appropriate error message is shown to unauthorised users who attempt to do so. Second, admins can now configure rule-based button visibility via a new `ButtonVisibilityRules__c` field on the `FlightsConfiguration__mdt` metadata type. Rules are defined as a JSON array and allow the Send to GDS, Shop Flights, and Find Flights buttons to be hidden based on field values on the itinerary or any of its passengers — for example, hiding Send to GDS when the itinerary status is Cancelled, or when a passenger matches a specific condition such as having a call-to-sell package allocated. When no configuration is present or the JSON is malformed, all buttons remain visible by default. The `KaptioFlights` permission set has been updated to include the new permission and metadata field access.
KAPI-7181 Unable to Add Group Incentive After Final Payment (ST-3296)
KAPI-7181 Unable to Add Group Incentive After Final Payment Adjustments You can now apply an adjustment equal to the full price of a passenger's tour, even when a full payment has already been recorded. Previously, the validation logic incorrectly used a net figure (total price minus amount paid) as the baseline, which caused the "Exceeds Total Price" error to trigger too early. The validation now correctly checks against the gross sell price, so incentives such as a complimentary passenger discount will apply as expected regardless of payment status.
KAPI-7236 Cancel Unticketed Air (ST-3292)
KAPI-7236 Cancel Unticketed Air Right Rez When cancelling an unticketed air booking, the page refresh event is now dispatched correctly. Previously, the component used a lower-level browser event that was incompatible with how a customers page components listen for refresh signals, resulting in an error. The component now uses the standard internal broadcast utility, ensuring that all relevant parts of the page (itinerary items, bookings, passengers, payments, etc.) refresh correctly after a cancellation.
RightRez_active flight and Shell PNR segments not aligned with others in Flights tab (ST-3275)
RightRez_active flight and Shell PNR segments not aligned with others in Flights tab Right Rez Fixed a layout inconsistency in the Air Tickets component where flight segment details were misaligned across different PNR sections. Passenger name rows and expanded flight detail panels in the Active Flights and Shell PNR sections were constrained to fixed column widths (3/12 and 7/12 respectively), while Air Held Back and Cancelled Flights sections rendered at full width. All four sections now use full-width layout, bringing them into visual alignment.
KAPI-7160 Send to GDS Permissions (ST-3241)
KAPI-7160 Send to GDS Permissions Right Rez A new custom permission (`Send To GDS`) controls whether the Send to GDS button is visible to a user on the Flights passenger grid. Users without this permission will no longer see the button, and any attempt to call the underlying action directly (e.g. via API) will also be blocked with a clear authorisation error. Users who already have access will see no change in behaviour — the existing rules around deposit dates and itinerary status continue to apply on top of the permission check. The permission is included in the `KaptioFlights` permission set and can be assigned per user or via Permission Set Group following standard Salesforce permission management. The Find Flights and Shop Flights buttons are unaffected. Additionally, a new `ButtonVisibilityRules` field on the Flights Configuration custom metadata type allows administrators to configure rules that hide any combination of the Send to GDS, Shop Flights, and Find Flights buttons based on field values on the Itinerary or Passenger record. Rules are defined as a JSON array and evaluated at page load — if no configuration is present, all buttons remain visible as before.
KAPI-6604 Can only throw this exception type from Visual Force or Aura context (ST-3174)
KAPI-6604 Can only throw this exception type from Visual Force or Aura context Right Rez PNR pricing line items will now appear on the Booking Overview for migrated itineraries. Previously, when the PNR import process was called from an asynchronous context (such as the background job that runs during migration), any error encountered was incorrectly wrapped as an `AuraHandledException` — a type only valid in UI/Aura contexts. This caused the import to fail silently rather than surfacing the real underlying error, with the result that air data appeared in the migrated system but not in Kaptio. The service now detects whether it is running in a batch, queueable, or future context and throws the original exception directly, allowing the migration process to handle it correctly and complete the PNR import as expected.