Upgrade actions: contact FlowX support if you installed the
ai-platform Helm chart, create the ai.flowx.build.deployment-failed.v1 Kafka topic and allow it in your ACLs, re-publish any build whose deployment failed shortly before the upgrade, review workflow node retry settings, grant the connection-test permissions to custom roles, and allow extra Integration Designer startup time on a large workflow_instances collection. Details are in the 5.9.6 upgrade notes.New
- Integration Designer: a REST node JSON body can include
"@@base64File(<path>)". When the request is sent, the marker is replaced with the base64-encoded content of the Document Plugin file at that path. The download from the Document Plugin times out after 5 minutes by default (FLOWX_DOCUMENTPLUGIN_DOWNLOADTIMEOUT). See Content Type: JSON.
Changed
- AI Platform services: the
ai-platformumbrella Helm chart has been superseded by theflowx-aichart. See the 5.9.6 upgrade notes. - All services: every service image sets
MALLOC_ARENA_MAX=2, which lowers native memory use. A value set in your deployment overrides it. - Builds: a build deployment that failed and waits for a retry is stored in the
application-managerdatabase instead of Redis, so a Redis flush or restart no longer drops it. The failure is reported on the newai.flowx.build.deployment-failed.v1Kafka topic. Retries still queued in Redis at upgrade are not carried over. See Build redeployment retries. - Designer: a custom component, document template, or notification template that is still in use can be deleted. The delete confirmation first lists where it is used, because those references break when it is deleted.
- Document parser: the layout, table, and OCR models are part of the image, so nothing is downloaded at startup or on the first parse, and the parser works without internet access or on a read-only filesystem. A request for the RapidOCR engine runs Tesseract instead. The
USE_DOCLINGsetting has no effect. - Integration Designer: workflow node retry waits grow exponentially (the interval multiplied by the coefficient for each further attempt), and the max interval caps each wait instead of limiting the whole retry window. Each attempt keeps its own entry in the run history.
- Integration Designer: a new index on the
workflow_instancesMongoDB collection speeds up lookups of child workflow runs. It is created when the service starts. - MongoDB settings: services read the MongoDB connection from new setting names, such as
SPRING_MONGODB_URI. ExistingSPRING_DATA_MONGODB_*values keep working, so no change is needed. See MongoDB setting names. - Notifications and data sources: testing an SMTP connection needs the permission to edit notification templates, and testing an IMAP or Microsoft Outlook connection needs the permission to edit data sources.
- Project versions: importing an app version that was exported from a newer FlowX.AI release is rejected, and the message names both versions.
- Solution portal: the
react-saasweb app is renamedsolution-portal, and its container image is published under the new name. See the 5.9.6 deployment guidelines for its version.
Fixed
- Advancing controller: Prometheus can scrape the metrics endpoint, like the other services. Paths outside the actuator endpoints stay closed.
- AI services: services start when
PYTHONPATHis overridden in the pod spec, for example by an APM agent injector. - Data model: switching an attribute from one Number subtype to another shows and saves the subtype you selected.
- Project versions: Resources Changed no longer reports a resource as changed when only its misconfiguration warnings differ, so editing one business rule no longer flags the other business rules in the process.
- Project versions: merging a branch keeps navigation area lists whole, so areas no longer disappear or fail with “Navigation area name already exists”. Merging also removes UI templates whose parent container the merge deleted, instead of leaving them at the root of the UI flow.
- Stability fixes across project version merges, Integration Designer workflows, builds, the Designer, the renderers, and the AI services.
Security
- All components: security patches and dependency upgrades to address known vulnerabilities.
Upgrade actions: let the
ai-services consumer group reach zero lag and allow the new AI consumer groups in Kafka ACLs, add private database hosts to the NoSQL DB runner allowlist, set every service-account client secret on authorization-system, rename cache_error_total in dashboards and alerts, re-expose loggers if you change log levels at runtime, and review the deployment guidelines if you had already turned on data partitioning, because the conversion to native partitions is one way. Details are in the 5.9.5 upgrade notes.New
- Integrations: an SFTP private key can be stored as a multi-line PEM, in both the Private Key field and in a configuration parameter, and is passed through to the connection.
- Process engine: process data tables can use native PostgreSQL partitioning, so retention drops whole partitions instead of deleting rows. Opt-in. See Native PostgreSQL partitioning.
Changed
- AI Gateway: logs carry structured key-value fields and record the length of a user message instead of an excerpt of its text.
- AI platform services: every AI service applies the platform’s Kafka security setting the same way, including TLS, and accepts the same OAuth token endpoint setting as the core services. An unsupported Kafka security protocol now stops the service at startup.
- AI platform services: each AI service consumes Kafka jobs in its own consumer group instead of the shared
ai-servicesgroup. The new groups read only jobs published after they start, so let theai-servicesgroup reach zero lag before you upgrade. If your Kafka cluster restricts consumer groups with ACLs, allow the new groups before you upgrade. - AI platform services: the LLM configuration cache listener keeps one stable Kafka consumer group per pod, so restarts no longer leave orphaned groups on the broker.
- Application manager: loading app versions is faster on databases that hold many deleted apps. The upgrade creates two new database indexes.
- Authorization system: a missing or blank service-account client secret now stops
authorization-systemat startup, and the log names each affected client and its setting. - Builds: exporting and importing a build resolves dependencies more consistently, and a parent build is reconciled when an import it depends on finishes.
- Document plugin: archive, encryption, and extraction operations enforce size limits, and input over the limit is rejected. See Document plugin: processing size limits.
- Integration Designer: a root workflow output larger than the Kafka payload limit fails the run with
outputTooLargeForKafkainstead of being dropped by the broker. See Integration Designer: workflow output size guard. - NoSQL DB runner: Oracle and PostgreSQL data sources can connect only to hosts that resolve to a public address, unless the host is allowed explicitly. Databases on a private network need an allowlist entry. See Relational database host restrictions.
- Observability: the
loggersactuator endpoint is no longer exposed by default. To keep changing log levels at runtime, addloggersto the exposure list, as described in Changing log levels at runtime. - Observability: the advancing engine reports additional metrics for its processing, and the metric names follow the platform naming convention.
- Observability: the Redis cache error counter is renamed from
cache_error_totaltoflowx_cache_error_totaland gains anerror_classlabel. Update dashboards and alerts that use the old name.
Fixed
- Audit: audit entries are no longer missing, duplicated, or recorded against the wrong application.
- Authorization system: service-account clients that were created without a secret receive the configured secret on upgrade. Clients that already have a secret keep it.
- Designer: searching reusable functions is case-insensitive, in the Functions list and in the function picker of Script and Fork nodes.
- Document plugin: archive, extract, encrypt, and decrypt operations stage files in temporary storage instead of holding them in memory, so a large archive no longer exhausts service memory.
- Events gateway: real-time updates resume automatically within seconds after a Redis failover, instead of requiring a pod restart.
- Identity: on self-hosted deployments the Keycloak issuer is derived from configuration and matched exactly, so tokens are no longer rejected when the configured base URL and the issuer in the token differ.
- Process execution: fixed rare cases where a process or workflow token stopped advancing with no error logged, and a database deadlock during cleanup of finished advancing partitions.
- Project versions: a change made inside an embedded subprocess is now taken into account when a merge computes conflicts. Previously such a change could pass through a merge without a conflict being raised.
- Redis connectivity: platform services, including AI Gateway, reconnect automatically after a Redis Sentinel failover or a dropped connection, and start even when Redis is briefly unavailable, without a pod restart.
- Renderers: text substitution no longer breaks when a substitution tag receives an empty value.
- Runtime: the runtime app context is cached correctly, which removes recurring
Redis cache PUT errorwarnings and a database lookup on each runtime request.
Security
- All components: security patches and dependency upgrades to address known vulnerabilities.
Upgrade actions: move the registry out of
image.repository if you embedded it there (no action if you set global.imageRegistry), grant the Liquibase lock permissions to each service’s database user on Oracle, create the flowx-events-gateway-sa client yourself if you manage Keycloak clients outside the Helm charts, and move host apps that embed the Angular SDK to Angular 21. Details are in the 5.9.4 deployment guidelines.Changed
- Access management: the project share modal warns when an access entity references roles that are missing from the build, and an end-user role can be removed from a project version.
- Angular SDK: the Angular renderer and the
@flowx/angular-*web SDK packages are built on Angular 21. Host apps that embed the Angular SDK must be on Angular 21. The npm and node requirements are unchanged. - Cross-version import: importing a project build or version exported from an older platform line completes the imported theme from the destination’s system theme, so components added since the export are no longer missing. Existing values in the exported file are never overwritten.
- Database migrations: the lock that guards Liquibase schema migrations at service startup is a database session lock:
pg_advisory_lockon PostgreSQL,DBMS_LOCKon Oracle. A pod that stops mid-migration releases its lock when the database closes the session. Service accounts no longer need thepods/statuspermission. Oracle deployments need new database grants. - Events Gateway: authenticates to the Runtime Manager with its own service account,
flowx-events-gateway-sa. Helm chart deployments whereauthorization-systemruns its migrations with Keycloak admin access need no action. - Helm charts: the container image reference is split into
image.registryandimage.repository. The registry resolves toglobal.imageRegistrywhen that is set, and otherwise to the chart’s ownimage.registry. The default image location is unchanged. - Integration Designer: service startup no longer scans the full token-instance collection, and the run-list summary queries are indexed.
- Libraries: the UI Flows entry is hidden from the library menu, where it did not apply.
Fixed
- Actions: deleting an action whose business rule calls a function works instead of returning a server error.
- Build export: retrying a build export re-attempts a dependency library whose own export timed out, so the parent build can finish.
- Documents: CSV generation from spreadsheet-derived data no longer produces oversized output from trailing empty cells and rows.
- Entry points: the entry-point picker in version settings lists only processes and UI flows from the current project.
- Gateways: an expression that fails to evaluate on an exclusive gateway surfaces as an incident on the process instance instead of only in the service logs.
- Generated documents: a document whose storage write fails returns an error instead of being recorded as successful. Transient storage write failures are retried first. The same guard covers the archive, encrypt, decrypt, convert, combine, split, and persist operations.
- Library resource overview: opening the resource overview for a library process no longer fails with a server error, and a process used from a library is listed once instead of once per consuming project version.
- Project versions: a branch merge no longer gets stuck awaiting correction when the final correction response arrives during a background synchronization, and merging versions no longer fails with a navigation-areas error.
- Renderers: the document preview shows its subtitle, and the file-upload error message follows the configured theme.
- Reusable UI templates: static input mappings configured on a reusable template are applied at runtime.
- Subprocesses: dismissing a subprocess started from an embedded call activity no longer returns a 403.
- Task management: the row-selection checkbox column no longer carries an invisible sort control that re-sorted the view and cleared the selection, and changing the page size no longer opens the wrong process from the list.
- Themes and CMS resources: exporting a theme no longer includes duplicate copies of system icons, and importing no longer leaves system substitution tags missing.
- UI Flows: table filters, sorting, and the current page are kept when you navigate away and back, and across rebuilds.
Security
- All components: security patches and dependency upgrades to address known vulnerabilities.
Upgrade actions: none. The new Events Gateway and Integration Designer settings ship with working defaults. Details are in the 5.9.3 deployment guidelines.
Changed
- Events Gateway: new settings tune the dedicated Redis connection pool for blocking reads, and the default blocking-read duration is lowered from 5 seconds to 1 second. If you set the blocking-read duration explicitly, review it against the new default.
- Integration Designer: a new setting sets the number of partitions for auto-created workflow Kafka topics. Existing topics are not modified.
- Media Library: PDF assets in the list can be opened in a new tab.
- Process start: web renderers keep the loading indicator visible until the first user task renders.
Fixed
- Build import: a transient database write conflict during a multi-dependency import no longer drops a dependency’s build, which caused runtime errors on substitution tags and enumerations. Large imports may take slightly longer.
- Date Picker: the calendar anchors to its field above modals and while scrolling, and label, helper, and error text follow the themed padding.
- Designer: opening Runtime after expanding a component’s Permissions section no longer freezes the Designer, and a pending AI UI-generation draft no longer locks the process diagram read-only.
- Projects: creating a project with the same name as a deleted project returns a validation error instead of an internal server error.
- Real-time event delivery: the Events Gateway no longer leaks Redis connections. Blocking reads run on a dedicated connection pool with Redis Cluster support, so the gateway no longer needs periodic restarts under sustained load.
- Task management: deleting a swimlane allocation rule removes only that rule, clicking Save twice no longer creates duplicate rules, and task views no longer reset when the same view is open from different workspaces.
- Workflows: a workflow no longer freezes silently after a step exhausts its retries.
Security
- All components: security patches and dependency upgrades to address known vulnerabilities.
Upgrade actions: update any Keycloak group mapper or external IdP claim that emits the end-user group
User to Users Group, remove records of the organization-ID migration or other Liquibase changesets you marked as executed by hand on an earlier 5.9.x (contact FlowX support for the list first), upgrade the AI Platform chart and the core services together, and update dashboards, alerts, and log queries that match the ai-platform- service name prefix. Details are in the 5.9.2 deployment guidelines.New
- AI agents and data models: AI Designer and AI Developer use the project data model when generating UIs and business rules, and AI Architect can generate a project data model with a preview before applying it.
- AI workflow nodes: JSON schema fields support
${}placeholders. - Chat file uploads: end users can attach multiple files in a chat-driven app. Uploads are indexed into a knowledge base scoped to the chat session, so AI nodes answer grounded in that content.
- Document Parser: a new LiteParse engine parses PDFs and images locally without GPU or AI calls, and OCR supports English, Romanian, Hungarian, and Bulgarian.
- Evaluations: an experiment can run against multiple datasets at once with per-dataset scores, and reports include AI-generated prompt-improvement suggestions per judge evaluator.
- Knowledge bases: a Custom Agent node can select multiple knowledge bases, each exposed to the agent as its own retrieval tool, and retrieval can span multiple knowledge bases in a workflow.
- SQL data sources: queries on SQL data sources can be tested from the builds list.
- Use in reporting: the reporting toggle is available on UI flows and workflows.
Changed
- AI node structured output: responses from AI nodes with a response schema are validated against it, with automatic repair retries, and node logs include the failure reason and rejected output.
- AI Platform services: services are deployed under their plain names, without the
ai-platform-prefix on pod, service, and image names, and the bundled Qdrant subchart is renamed the same way. Core services resolve AI components by the new names. - Audit log: records sharing, user invitations, designer-user, end-user, and group management, actions on process instances and UI flows, adding a dependency, and terminating process, workflow, or UI flow instances.
- Copy to project: copying a process or UI flow to another project also copies its roles.
- Data archiving: archiving detaches a partition only when every process or workflow instance in it has finished. New settings for terminating stuck instances and backfilling legacy rows are off by default.
- Default end-user group: the group that the 5.1.x upgrade migration creates is renamed from
UsertoUsers Group. Groups your admins created are not renamed. - Designer: the Event Handlers section appears higher in the component configuration panel, and the keys to save for collection items and bundled custom-component inputs are computed automatically.
- Kafka reconnects: platform services use a gentler broker-reconnect backoff by default, and repeated Kafka connection errors log at a quieter level.
Fixed
- Active policy: the user list on the override active-policy form is no longer empty.
- Application manager: the runtime-application organization-ID migration converts existing data correctly.
- Audit logs: filtering audit entries by user works when the username differs from the email address.
- Build export with media files: exporting a build with media file content produces an archive that contains the binaries.
- Chat: the floating chat position is calculated correctly, and the chat session is kept in the URL when the instance UI flow console is opened.
- CMS enumerations: cascading-enum value lookups resolve from live entries only, so options that were removed and re-added no longer cause errors or return deleted values.
- Data mappers: adding a new output parameter no longer clears existing JavaScript functions.
- Data sync with private CA certificates: data-sync migrations that call HTTPS endpoints, such as Keycloak, no longer fail certificate validation in environments that use an internal certificate authority.
- PII Guard: the input scan no longer corrupts workflow data or redacts example values from instructions, and anonymized values are restored after LLM calls, including in chat-driven workflows that use conversation memory.
- Project version merge: a merge no longer fails with a 500 error.
- Redis Cluster: UI template cache keys map to the same cluster slot, which prevents cross-slot errors.
- Reusable UI templates: actions are no longer missing at runtime when a template is nested in multiple levels of containers.
- Self-hosted installation and upgrade: Keycloak realm handling during upgrades from 5.1.x (including migration changesets on Oracle), service-account provisioning, and default end-user group seeding work on self-hosted environments.
- Workflow data: archiving batches, checkpoints, and throttles for large datasets, with partition-ID backfill for legacy data. UI flow sessions are included in partitioning and archiving, and an incident-save deadlock in the process engine is fixed.
- Stability fixes across the Designer, the renderers, and the backend services.
Security
- All components: security patches and dependency upgrades to address known vulnerabilities.
Upgrade actions: none for deployments where the Helm chart provisions Kafka topics. If you provision Kafka topics or ACLs manually, create the topics added in 5.9.1. Details are in the 5.9.1 deployment guidelines.
New
- AI permissions: AI runtime usage and AI build-time tooling (AI Designer, agent building, code generation) are governed by two separate permissions. When AI is turned off, AI icons and entry points are hidden instead of shown disabled, and build-time helpers such as code generation and “Add comment” follow the dev-agent permission.
- File Preview: scroll-trigger event handlers, including a “document end” trigger, let a flow detect when a user scrolls through a document or reaches its end, for example to enable an Accept button only after the user reaches the end of an agreement.
- File upload: the upload button supports a configurable icon, set in the Designer.
- Microsoft Outlook: connections support certificate-based authentication for Microsoft Graph, as an alternative to client-secret credentials.
- Script engine: business rules, reusable functions, and node rules can each run on the native engine (the 5.9 default) or the legacy GraalVM engine. Rules created before the switch to native keep running on GraalVM until you migrate them, and new rules default to native.
Changed
- AI Designer: generates UI from a flat template format instead of 3-level nesting, supports more component types (including Multi-Select, Bulk File Upload, Table Cell, and Collection), edits existing templates incrementally instead of regenerating them, and can generate reusable UI templates.
- Kafka topics: new topics carry runtime config-param change events, runtime instance terminations, resource cache evictions, and evaluation improvement suggestions. The Helm chart provisions them.
- Merge conflicts: merge-conflict handling for custom components and UI Flows identifies resources more clearly.
- Organization settings: navigation and design improvements.
- Platform Status: reports AI Platform components and their databases alongside the core services.
- Runtime config params: changes reach the process engine in near-real-time, so updated values take effect immediately instead of after a short cache delay.
- Workflows: storage of running steps is optimized, workflows and processes launched from a UI Flow inherit the build of the parent UI Flow, and AI node failures show the error details and model reasoning in the workflow run logs.
Fixed
- Actions: GET actions no longer fire with undefined parameters.
- AI chat: agent responses no longer reappear in chat after stop and refresh, and the builder-agent chat no longer duplicates messages.
- Copy to project: copying a process or workflow to another project succeeds, and copied workflows appear in the target project.
- End-user login: a null value is no longer cached when looking up the “All end-users” group, which could block logins until data sync completed.
- File Preview: previews render correctly, events fire inside collections, a fixed height applies at runtime, and preview resources no longer fail with CORS errors.
- File Storage: FTP test connection and file operations resolve configuration-parameter placeholders, and FTP file preview works when the root path has no leading slash.
- Forms to validate: scrolling covers the full component hierarchy, placeholders update, and chat and tab-bar components are selected correctly.
- Hide and disable conditions: conditions on UI templates, processes, and UI Flows apply at runtime for Designer users without workspace access.
- Invitations: an invited Designer user added as an Organization owner is assigned to a workspace.
- Knowledge Base: files that fail to upload because the content is too large no longer appear in the content source list.
- Modals: dropdowns no longer flicker, and long key names no longer break the layout.
- Process instances: loading an instance with a very large execution graph no longer crashes the browser.
- Task management: headers follow the theme in React and Angular, and the filter window no longer disappears after applying criteria.
- Theme admin: “copy to” no longer loses theme content.
- Timer events: activating a start timer event after a new build regenerated the process resource ID no longer fails with a 500 (duplicate key) error.
- UI Flow: images display in preview after refresh, and returning from an expired UI Flow no longer loses the theme UUID.
- Usage Overview: opening a usage overview no longer fails with a 500 error.
- Web renderer: the button shadow and modal content padding are restored, and components render when a media-file storage path is null.
- Workflows: END PARALLEL output no longer includes data from before the parallel branches started, and NoSQL node run logs no longer crash when a node fails before building its options.
Security
- All components: security patches and dependency upgrades to address known vulnerabilities.

