Overview
This page provides detailed information about fixes and features that have been added to RPI v7.8 after its initial release.
Some patches require Helm chart updates, while others do not. This is noted for each patch version:
-
Image-only update: There are no changes to the Helm chart. You don't need to pull the latest chart version. Simply updating the container image tag within your existing
values.yamlfile is sufficient. -
Helm chart update required: You will need to pull the latest Helm chart version. Refer to Managing Helm chart updates for self-hosted RPI v7 deployments for details.
RPI v7.8.20261104.2001
06-Nov-2026
Client Download
This release is an image-only update.
Description of updates
Audience Designer
-
When workflow prioritization is enabled and all workflow activity slots are in use, an audience test now shows that it's queued and waiting for a slot. You can cancel the test while it waits, and it no longer reports a failure to activate just because it's been waiting. The
AudienceTestTimeoutvalue no longer counts the time a test spends queued. A new System Configuration value,AudienceTestPriority, sets whether audience tests are queued at Urgent, Normal, or Low priority (default Normal). Choose Urgent with care, because it lets audience tests bypass the concurrent-activity limit. (Ref. 32320, 32283, ITDSK-32260)
Interaction Designer
-
Fixed an issue where Activate All could leave a workflow inactive, with no message, when the workflow used a selection rule placeholder whose settings had changed after the placeholder was created. Activate All now activates these workflows. If the server can't activate a workflow, it names the workflow and the reason, and records it in the Audit Log. (Ref. 31996, 31995, ITDSK-32112)
-
Fixed an issue where an Export activity in an activated recurring interaction could read offer history meta attributes from the audience's main table instead of the offer history meta table, which caused the export to fail. If a workflow activated on an earlier version is affected, the Export activity now stops with a message that names the attribute and asks you to deactivate and reactivate the workflow. (Ref. 32199, 32192, ITDSK-32250)
LuxSci email
-
Fixed an issue where a LuxSci email channel with Import via file enabled stopped importing sent, delivery, open, and click events after a stream had no new activity for about 30 days, and didn't recover on its own. An affected channel now recovers on its first synchronization run after you install this patch. If a stream needs its sync position reset on two runs in a row, the synchronization task now completes and logs an error on the server, instead of failing with an Error status on the System Tasks tab. (Ref. 31923, 31896, ITDSK-32086)
RPI v7.8.20261027.1415
28-Oct-2026
Client Download
This release is an image-only update.
Description of update
Interaction Designer
-
Following production activation of a queue listener, the Channel property at its queue activities is locked, and cannot be changed, even if the queue listener is deactivated. An informational tooltip advises of this fact. Following deactivation, it remains possible to change a queue activity's offer, but only if the chosen offer's delivery method is compatible with the selected (and locked) channel. (Ref. 31857, 31836, ITDSK-31806)
RPI v7.8.20261026.948
26-Oct-2026
Client Download
This release is an image-only update.
Description of updates
Cheetah Digital email
-
Fixed the Cheetah Digital email channel creating batch imports, filters, campaigns, and content blocks one folder above the Batch import folder and Dynamic block content folder selected on the channel. It also created the audience filter for each execution outside any folder. These objects are now created in the folders shown in the channel's settings. Existing channels correct themselves the next time they send, so you don't need to reselect their folders. (Ref. 31700, 31689, ITDSK-31911)
Audience Designer
-
Fixed an issue where an audience could select records using another audience's placeholder values, without reporting an error. This happened when an audience embedded another audience through an Audience block and both set values for the same attribute placeholder. Each audience now uses its own placeholder values, and an embedded audience that sets no value uses the outer audience's value. An audience that's paused and resumed, including an Audience Designer test, now keeps its placeholder values instead of reverting to the defaults. (Ref. 31779, 31764, ITDSK-31944)
Interaction Designer
-
Fixed an issue where the RPI client became progressively slower during a session as you repeatedly opened, saved, edited, or validated interactions that use selection rules. Opening the same interaction several times in a session now takes about the same time each time, without restarting the client. (Ref. 29700, 28741, ITDSK-31558)
Bitly
-
Fixed two issues with link shortening through Bitly (used by Twilio, Amazon End User Messaging SMS, mPulse, Salesforce Marketing Cloud SMS, broadcast channels, and the Integration API's digital content endpoint):
-
RPI looked up the Bitly account's group before every link instead of once. On a large personalized send, this could exhaust Bitly's hourly rate limit for that lookup and slow the send down.
-
When Bitly answered with a non-JSON error page, such as during a gateway outage, link shortening ended with an unreadable parsing error. It now reports the HTTP status Bitly returned and a short excerpt of its reply.
(Ref. 28748, 28749, 28745, ITDSK-31560)
-
Configuration
-
Fixed an issue where deleting a user from one tenant also deleted their account when they belonged to another tenant, leaving them unable to sign in. The user now keeps their account and access to their remaining tenants, and Delete User from Cluster removes the user from every tenant. (Ref. 31821, 31816, ITDSK-31947)
Integration API
-
When an OpenID provider such as Keycloak or Microsoft Entra ID is set up to use RPI's own users, a sign-in now acts as the matching RPI user for everything it does. That includes created-by and modified-by details, permissions, and cluster administrator rights. RPI matches the provider's username, then its email address, against the RPI user name or email, ignoring letter case. A sign-in that matches no approved RPI user is now refused, where before it signed in with no tenants, and the refusal is recorded in the RPI log. Before you upgrade, make sure everyone who signs in through such a provider has an approved RPI user whose user name or email matches their provider username or email, and that no two RPI users share an email address. This includes DRH/CDP service accounts. (Ref. 27272)
RPI v7.8.20261019.1516
20-Oct-2026
Client Download
This release is an image-only update.
Description of update
-
Fixed an issue where Google Ads Customer Match uploads that Google rate-limited added only part of the audience to the list in Google Ads, while the activity still completed successfully. Uploads now wait as long as Google asks before retrying, continue the interrupted upload instead of starting over, and report as received only the members actually submitted. If no members can be sent after all retries, the activity fails. (Ref. 29699, 29696, ITDSK-31792)
RPI v7.8.20261019.910
19-Oct-2026
Client Download
This release is an image-only update.
Description of update
-
Updated three third-party security libraries used by the RPI v7.8 service images to versions that close one critical and several high-severity published vulnerabilities, so the images now pass a container security scan clean for these components. There is no change to any RPI feature or behavior. (Ref. 31680, 31656, ITDSK-31825)
RPI v7.8.20261015.1302
15-Oct-2026
Client Download
This release is an image-only update.
Description of updates
Interaction Designer
-
Opening or saving a large interaction no longer leaves the client unresponsive for several seconds to several minutes. Status indicators still update as soon as you choose, change, or clear an activity's input source on the Inputs tab. (Ref. 28792, 28741, ITDSK-31558)
-
Export activities created before v7.8 now load in the Interaction Designer with Write offer history selected, which matches how they ran before the upgrade. Previously they loaded with it cleared, so running them wrote no Offer History and reported no error. Export activities you explicitly set not to write Offer History and new Export activities are unchanged. (Ref. 28726, 28712, ITDSK-31490)
-
An Export activity with Write offer history cleared now exports only the records added in the current run. Previously it exported every record that earlier runs had already selected, each time a single-instance recurring trigger fired or an interactive audience polled. Activities connected below such an Export now also receive the audience's records. Please refer to the important upgrade considerations that follow. (Ref. 28739, 28732, ITDSK-31553)
Before you upgrade-
Review activities connected below an Export with Write offer history cleared. Since v7.8 these activities have received no records. After the upgrade they receive the audience's records. If one is an offer or channel activity, it sends real messages on its next run. Deactivate or change any interaction where you don't want this. A child activity that already has its own input source keeps it.
-
Review anything that reads these export files. Each run now writes a file that holds only that run's records, not the full cumulative list.
After you upgrade
-
Pause and resume each running interactive workflow that has an Export with Write offer history cleared below an interactive audience; reactivating it also works. Until you do, it keeps exporting every record on each poll, and each poll writes this warning to the activity log: "'<activity>' was activated by an earlier version. If it is an Export with Write to Offer History off, it exports every record this activity has selected on each poll. Pause and resume this workflow to apply the fix." Recurring workflows need no action and pick up the fix on their next trigger fire. A run that's already in progress during the upgrade finishes with the old behavior.
What changes
-
Records sent: the first run of a workflow instance still sends everything the audience selects. Later runs send only the new records, and a run with no new records exports nothing and logs "No data to export".
-
Counts: for an Export with Write offer history cleared, Total Count and the targeted count show only the latest run, not a running total. With the option selected they're still a running total. Two Exports on the same audience, one of each, therefore show different numbers after the second run, as expected.
-
Unchanged: workflows set to New workflow instance each time trigger fires, Exports with Write offer history selected, Export data connectors, and Data Transfer activities.
-
Database: two nullable columns,
WaveNumberandInstanceIteration, are added automatically to each workflow's audience contact table in the data warehouse. Contacts recorded before the upgrade aren't sent again. There are no operational database schema changes and no new configuration values.
-
Audience Designer
-
Waterfall reports for audiences and selection rules that filter on related tables, such as transaction or invoice line-item tables, now store one row per customer at each step. These reports complete faster, place far less load on your database, and give the same counts as before. Working tables that a waterfall report creates are now also removed when the report fails or is stopped. (Ref. 28793, 28722, ITDSK-31504)
-
Pop out into its own Window on a selection rule in a Filter or Multi-filter block now opens the saved rule, the same version that Open Latest Version opens. Previously it opened an unsaved copy, so changes you made in the popped-out window never reached the saved rule. In the Audience Instance Viewer, pop out still opens a copy of the rule as it was when the test ran. (Ref. 29034, DF-154, ITDSK-31563)
Integration API
-
Seed values and seed attribute default values that you add or update through the Integration API are now stored as dates, numbers, and true/false values, according to the attribute's data type. They're stored the same way as values entered in the client, so they format correctly in seeded exports and test sends. The API now refuses, with an error, any value it can't read as the attribute's data type. (Ref. 28259)
-
When the Integration API refuses a configuration change, such as an invalid seed definition update, the configuration now stays exactly as it was, and the original error is still returned. Previously, the refused change could still appear in later reads, and further changes for the same client were refused until the configuration reloaded. (Ref. 28298)
Operational databases
-
On PostgreSQL deployments, opening a new database connection no longer pauses for several seconds while it attempts a Kerberos negotiation that RPI doesn't use. The pause recurred about every five minutes per connection pool and caused periodic delays in the Interaction API, Node Manager, and the client. (Ref. 28468)
Deployment
-
A new rollback operation in the Configuration Service restores the cluster and tenant databases to a consistent state after you redeploy an earlier version's containers, without a full database restore. Running the regular upgrade with an older deployment package now fails with an error that names both versions; previously it reported success without applying any changes. These rollback operations are supported from this latest version (v7.8.20261015.1302) forward. (Ref. 28058)
RPI v7.8.20260930.1231
30-Sep-2026
Client Download
This release contains Helm chart updates.
Description of updates
Audience Designer
-
Fixed an issue where setting a non-required metadata attribute backed by a numeric or other non-text value list to (blank value) saved without error, but caused the audience to fail when run with a value-conversion error. Blank values on these attributes are now preserved, and a Date-type attribute with no default value now records an empty value instead of 1900-01-01. The fix applies to audience runs from this version onward; data that's already written isn't changed. (Ref. 28206, 28207, 28201, ITDSK-30770)
Interaction Designer
-
Fixed an issue in the Interaction Designer where the "Manage placeholders" dialog for an Interactive activity listed every audience placeholder twice, when that activity's Offer chained into a second Interactive activity on the same audience. Each placeholder is now listed once, as expected. This only affected what the dialog displayed and its validation messages; values already saved on the activity and the interaction's execution were not affected. (Ref. 28439, 28423, ITDSK-31167)
Execution Service
-
Fixed an issue where an audience activity that moved to another Execution Service host, after the original host stopped responding, could fail to resume and report a missing staging table. The activity now pauses if the original host loses ownership before finishing, so the host that takes over can complete it. If an Execution Service host loses contact with the cluster database, its in-flight activities now pause and resume on another host, rather than continuing. (Ref. 28196, 28180, ITDSK-30761)
Deployment configuration
-
Fixed an issue where a plugin setting provided as an environment variable, including one set through the Helm chart, was silently ignored when the same setting also appeared in a service's shipped default settings file. Environment variables now take effect as documented. (Ref. 28299)
Queue Reader
-
Fixed an issue where processing a backlog of web form submissions together could record several submissions under the same identifier in the data warehouse, losing submissions or attributing field values to the wrong submission. Each submission in a batch is now written with its own identifier. Submissions already affected aren't corrected automatically. (Ref. 28236)
Data Import
-
Fixed an issue where a Data Import join from an imported column back to the table being loaded saved and loaded without error, but then blocked saves in Configuration > Joins with a "Table is joined to itself" error until you removed the join by hand. Data Import no longer creates this kind of join. It's now flagged as a validation issue in the designer and the Integration API, so it can't be saved. (Ref. 28376, 28369, ITDSK-31059)
RPI client
-
Fixed an issue where opening the Interactions Report or the Interaction Triggers Report could close the RPI client immediately, with no error message. The report toolbar's filter area may now appear slightly wider than before. If the RPI client does close unexpectedly, the error is now recorded in the local client log and, when the client can reach the server, in the RPI server log. (Ref. 28194, 28133, 28122, ITDSK-30637)
-
Fixed an issue where the RPI client, when started from outside its install folder, could log you in but show a near-empty main menu and an empty Recently Accessed pane. This could happen when you started it from a shortcut with no Start in folder, from Windows Search, or in some Citrix or virtual desktop setups. The client now loads its plugins from its own install folder, however it's started. (Ref. 28400, 28378, ITDSK-30902)
Integration API
-
Fixed an issue where three Integration API endpoints reporting an activity's metadata (the interaction, activity, and trigger endpoints) always reported an attribute's default value in the
valuefield, even when the activity had a manually configured override for that attribute. These endpoints now report the activity's actual, current value for each attribute, withdefaultValuecontinuing to report its default andisDefaultindicating whether the two differ. (Ref. 27970, RPI-I-814)
Azure Storage Queue
-
Fixed an issue where using the Azure Storage Queue provider for a channel's personalize-content send queue failed because the queue name RPI generated did not meet Azure Storage Queue's naming rules. Generated queue names are now automatically adjusted to meet those rules, so channels using an Azure Storage Queue provider for personalize-content sends now work correctly. (Ref. 28130)
Email channels
-
Fixed an issue where new Cheetah Digital, Eloqua, and LuxSci email channels were saved with a Request timeout of 1 minute instead of 60 minutes, so slower operations, such as campaign creation or large data imports, could time out. New channels of these types now default to 60 minutes. Existing channels aren't updated, so check the Request timeout on any of these channels that's set to 1 minute. (Ref. 28203)
Cheetah Digital (Marigold) email
-
Fixed an issue where operational (triggered-campaign) sends on a channel with manually mapped data fields could fail every record, if the channel was created or last saved before April 2026 and not re-saved since. These sends now complete without you having to re-save the channel. (Ref. 28110)
-
Fixed an issue where an operational (triggered-campaign) send could create and launch a campaign even when no personalized content had reached the send queue, so recipients received email with unresolved merge fields. The campaign is no longer created or launched until content reaches the queue, and the activity still fails with the same error when nothing does. (Ref. 28111)
-
Fixed an issue where, if a triggered-campaign send was interrupted and restarted, the number of records reported as sent could be far lower than the number actually delivered, and the report could incorrectly state that the remaining records would be delivered on a further restart. Reported counts now reflect the cumulative total across restarts, and the report distinguishes records still queued from records that restarting can't recover. (Ref. 28112)
-
Fixed an issue where a triggered-campaign send that timed out waiting for a response was always reported as a definite failure to re-target, even though the email might already have been sent. Timed-out contacts are now reported separately as "Outcome unknown (timed out)", with an instruction to check them in Cheetah Digital before re-targeting, so a contact isn't sent the same email twice. (Ref. 28134)
LuxSci email
-
Fixed an issue where a LuxSci email send could be delivered to a recipient twice, due to a network or server failure occurring after RPI sent the request to LuxSci, which triggered an automatic retry of that same request. RPI now only automatically retries a LuxSci send when the failure occurred before the request reached LuxSci; for any failure that happens afterward, RPI checks LuxSci's delivery records before deciding whether to resend; if that check cannot be completed, the batch is set aside for the existing recovery process instead of being resent. To restore the previous retry behavior, set
Plugins__LuxSci__SendRetryPolicytoLegacy.
Two related issues were also fixed: a send that ran out of retry attempts could previously drop out of the activity's own counts, and a cached authentication code could expire slightly before RPI expected it to, causing extra failed requests and delays. (Ref. 26282, 28182, ITDSK-30760)
Salesforce Marketing Cloud email
-
Fixed an issue where a Queue Listener send could fail, with Salesforce Marketing Cloud rejecting the request, when an email offer used the same Table Smart Asset in both the HTML and plain-text parts of a multipart message. These offers now send successfully. (Ref. 28032)
-
Fixed an issue where sends could fail with an "Invalid Function Call" error when a tracked link's destination was built from more than one piece of dynamic content. Other HTML attributes on the same link, such as one that opens the link in a new tab, are now kept when the link is rewritten for click tracking, instead of being removed. (Ref. 28033)
-
Fixed an issue with Salesforce Marketing Cloud email sends where a Rule Smart Asset referenced inside an HTML attribute (for example, a link URL) rendered every content variant instead of just the one matching the recipient's rule. These assets now render only the matching variant when used inside an HTML attribute. (Ref. 28034)
-
Fixed an issue with Salesforce Marketing Cloud channels where unsubscribing an email address could record an internal subscriber identifier in the suppression list instead of the actual email address, so re-subscribing that address afterward did not remove it from the list. Suppression entries for these channels now record the actual email address, so they update correctly when a contact re-subscribes. (Ref. 28035)
Google Ads Customer Match
-
Fixed an issue where a fulfillment activity could report success and record contacts as delivered even when every attempt to reach Google Ads failed. The activity now fails when a sustained Google Ads failure, such as invalid credentials or an exceeded quota, means no contacts were delivered, and reports the shortfall when only some were. The activity log also now includes the error Google Ads reported. The Interaction Workflow Failure alert now fires where Interaction Fulfilment Complete used to, so anyone relying on the old success outcome for this channel should review it. (Ref. 28218, 28197, ITDSK-30787)
Helm chart update
-
Added a top-level
commonEnvVarssetting, which is a list of Kubernetes environment variable entries (namewithvalueorvalueFrom) applied to every RPI container. If you need to add custom environment variables for things such as monitoring or security tooling, setenabledtotrueand supply the name and value of the variable. (Ref. CE-4093, ITDSK-29822)YAMLcommonEnvVars: enabled: true # opt-in (defaults to false) vars: - name: DT_TAGS value: "app=rpi environment=prod owner=platform-team"
RPI v7.8.20260910.1532
11-Sep-2026
Client Download
This release contains Helm chart updates.
Description of updates
Cheetah Digital email
-
Fixed an issue where a Cheetah Digital email fulfillment interrupted and restarted part-way through its send treated already-started recipients as finished, while still reporting success. Unconfirmed recipients are now reported by identifier range and the activity fails, prepared content is retained across a restart, and send failures reported by the queue are no longer discarded. (Ref. 27965, 27964, ITDSK-29822)
-
Large Cheetah Digital email sends no longer load an entire audience's rendered content into memory at once, which could exhaust the Execution Service's memory and cause the run to restart and lose its audience. The send stage now processes a bounded number of content batches at a time. If you need more throughput and have the memory headroom, raise the campaign trigger thread count via
extraEnvsin your overrides file:YAMLextraEnvs: - name: Plugins__Marigold__CampaignTriggerSendThreadCount enabled: true value: '99'(Ref. 28037, 27964, ITDSK-29822)
-
Recipients rejected by Cheetah Digital because a triggered campaign was still being set up were previously abandoned without retry, with the activity still reporting success. Rejected sends are now retried with backoff over roughly a minute; any recipients still not accepted are listed by contact in the activity log with the provider's full response, and the activity fails if fewer recipients reach the provider than were targeted. (Ref. 27986, 27982, ITDSK-29822)
Interaction Designer
-
Fixed an issue where a Data Transfer activity (or an Export activity with Write Offer History off) configured to export data at a different resolution level than its audience would fail during execution with a "Join not found" error and produce no output file. (Ref. 28017, 28016, ITDSK-29934)
Audience Designer
-
Fixed a defect where saving an audience, interaction, or other definition that had grown sufficiently complex could permanently fail with a generic error, blocking further edits. (Ref. 28027, 27952, ITDSK-29770)
-
Fixed an issue where an interaction using a Cell List block with a custom deduplication key could fail unpredictably depending on the order its sibling cell lists happened to run in. (Ref. 28082, 28065, ITDSK-30078)
Integration API
-
Fixed an issue in the External Integration API where the "Name" field on workflow associations and workflow activities in the Interaction Tracker and Interaction Reports responses always returned an internal value instead of the actual name. (Ref. 28051, 28029, PS-258)
Execution Service
-
Channel synchronization tasks using Data Management could hang indefinitely when a Data Management job or report download stopped responding. These waits are now bounded, and an optional new setting (
RPDMJobTimeoutMinutes) caps how long a Data Management job may run before it fails cleanly; an aborted Data Management job is now treated as a failure. (Ref. 28039, 28040, 28081, 28028, ITDSK-29964)
Helm chart update
-
Fixed an issue where new RPI 7.8 deployments using Microsoft Entra ID single sign-on prompted for interactive login every time the desktop client launched, instead of reusing the cached sign-in as in prior versions. The default Helm chart setting for
microsoftForceLoginhas been restored to match RPI's original behavior (false). (Ref. 28108, ITDSK-30602)
RPI v7.8.20260903.1449 (initial release)
31-Aug-2026
Client Download
Refer to the RPI v7.8 release notes for details about this initial release of RPI v7.8.