2026.4 Release Notes
Last updated: September 30, 2026
For a list of release dates and Sisense's end of support schedule, see Sisense Version Release and Support Schedule.
For information about the Sisense gradual rollout process, as well as an explanation of how the versions and release notes relate to content added during the rollout, see Sisense Gradual Rollout Process.
Regarding Salesforce Security Updates to the "Use Any API Client" Permission:
-
For customers using Sisense connections to Salesforce, it is important to note a significant Salesforce change and steps that you may have to take for continued correct functionality. See Salesforce “Use Any API Client” Permission Changes: Sisense Impact & Migration Guide.
Regarding Upgrading:
-
Version L2025.4 Service Pack 1 contains an important fix. Therefore, it is strongly recommended to upgrade to SP1 or newer.
-
Customers currently running Sisense versions older than L2025.2.0.249 cannot directly upgrade to versions L2025.3 or newer. You must first upgrade your Sisense installation to version L2025.2.0.510. Only after completing this intermediate upgrade can you proceed to version L2025.3 or newer. This important change is due to Sisense upgrading to MongoDB 8 starting from Sisense version L2025.3.
Note: MongoDB 8 is not compatible with Linux Kernel 6.19 through 7.0.13. Therefore, do not use those kernel versions.
-
To download the latest Sisense version, or to upgrade to an older version, see that version’s Release Notes and contact your Sisense Customer Success Manager for the version package.
-
To upgrade to this version of Sisense:
-
Read the Release Notes of all the versions following your current version, up to and including the version to which you are upgrading.
-
Run a system backup before upgrading. See Backing up and Restoring Sisense.
-
Follow the upgrade procedure in Upgrading Sisense.
-
Privacy and Security Information
This release contains several security related updates. We highly recommend upgrading to this latest release to take advantage of any security-related updates and benefit from the Sisense support and warranty. In addition, Sisense strongly recommends regularly testing and auditing your environment after upgrading, and periodically during your subscription term, to ensure all privacy and security settings remain in place.
Customers are responsible for controlling and monitoring your environments and are therefore in the best position to ensure the correct security settings are in place for how you use Sisense products.
Due to the complexity of Sisense products, we strongly suggest that all customers ensure that you understand how all of the privacy and security settings within Sisense work.
If you use Sisense to store/process sensitive data, it is your responsibility to review and test your implementation to ensure you are not inadvertently sharing data with unauthorized third parties. For more information on data security rules, see Data Access Security.
BREAKING CHANGES - WARNING!
The following is a cumulative list of potentially breaking changes from approximately the past 12 months, and may also include warnings about upcoming changes:
The REST API Swagger/OpenAPI version has been updated, introducing stricter request validation. Requests that do not conform to the documented API specification — for example, those including unrecognized parameters or missing required ones — might be rejected with 422 errors.
Starting with Sisense version 2026.4.0, self-hosted (on-prem) Sisense deployments will use the Sisense-hosted vector database, running on the local Sisense MongoDB instance, for the assistant and Search, replacing customer-managed "Bring Your Own Vector Database" (BYO VDB) configurations. As part of the upgrade to this version, all self-hosted customers currently using a BYO VDB will be migrated to the Sisense-hosted vector database. New self-hosted deployments will only support the in-box vector database; BYO VDB will no longer be available as a configuration option. Managed cloud (SaaS) deployments are unaffected and continue to use the existing hosted vector database (Atlas).
Customers who need to keep using their own vector database should contact their Sisense Customer Success representative before upgrading.
Shared formulas no longer persist or propagate across differing data sources. Workflows relying on cross-datasource formula leakage will need to define formulas explicitly per data source.
Customers using the GenericJDBC connector with a custom dialect Java file will need to recompile and potentially update your code.
All custom dialect files must be recompiled after the upgrade because the underlying Calcite JAR has changed. Even if no code changes are needed, the old compiled .class file may not work correctly with the new Calcite runtime.
To recompile: re-upload the dialect .java source file through the connector management CLI. The system will compile it against the new Calcite JARs automatically.
Breaking API Changes
The following changes may require code modifications in custom dialect files.
1. Operator Comparison Pattern
This was observed for LOG10 but may affect other operators compared using identity (==). The safe approach is to use name-based comparison.
Before:
if (call.getOperator() == SqlStdOperatorTable.LOG10) { ... }
After:
if (call.getOperator().getName().equalsIgnoreCase("LOG10")) { ... }
Reason: Calcite changed SqlStdOperatorTable from a reflective scan to an immutable multi-map (CALCITE-6024), which altered operator object resolution order. Identity comparison (==) is no longer reliable for matching operators.
2. SqlSelect Constructor - New qualify Parameter
The SqlSelect constructor gained a new qualify parameter (for the SQL QUALIFY clause). The old constructor without qualify still works but is deprecated.
Before (still compiles, but deprecated):
new SqlSelect(pos, null, selectList, from, where, groupBy, having,
windowDecls, orderBy, offset, fetch, hints);
// 12 parameters
After (recommended):
new SqlSelect(pos, null, selectList, from, where, groupBy, having,
windowDecls, null, orderBy, offset, fetch, hints);
// ^^^^ new 'qualify' parameter (null = not used)
// 13 parameters
3. rewriteSingleValueExpr() Signature Change
If the dialect overrides rewriteSingleValueExpr(), the method signature has changed.
Before:
@Override
public SqlNode rewriteSingleValueExpr(SqlNode aggCall) { ... }
After:
@Override
public SqlNode rewriteSingleValueExpr(SqlNode aggCall, RelDataType relDataType) { ... }
Add import: import org.apache.calcite.rel.type.RelDataType;
4. SqlExtractFunction Constructor
The default (no-arg) constructor was removed.
Before:
SqlExtractFunction extractCall = new SqlExtractFunction();
After:
SqlExtractFunction extractCall = new SqlExtractFunction("EXTRACT");
5. SqlSampleSpec API Change
If the dialect handles TABLESAMPLE, the getter method was replaced with direct field access.
Before:
Float pct = ((SqlSampleSpec.SqlTableSampleSpec) spec).getSamplePercentage();
After:
Float pct = ((SqlSampleSpec.SqlTableSampleSpec) spec).sampleRate.floatValue();
6. CTE (WITH clause) Body Framing
If the dialect customizes WITH clause unparsing, the CTE body must now be wrapped in a WITH_BODY frame.
Before:
with.body.unparse(writer, 0, 0);
After:
SqlWriter.Frame bodyFrame = writer.startList(SqlWriter.FrameTypeEnum.WITH_BODY);
with.body.unparse(writer, 0, 0);
writer.endList(bodyFrame);
Without the WITH_BODY frame, the CTE body gets extra parentheses, producing invalid SQL.
Security
The move to Apache Calcite 1.36.0 addresses all known security vulnerabilities, including CVE-2022-39135 (CRITICAL, CVSS 9.8 - XML External Entity injection). Calcite 1.36.0 has zero known CVEs.
The Report Manager URL has now changed from /reportManager/main.html#/reports to /app/report-manager#/reports. This is necessary only for when embedding the Report Manager directly by URL.
2026.4.0 Release Overview
Pre-Release
These release notes are being provided in advance of the release, for your preparation and evaluation of the upcoming version. This version will be released for Cloud Availability shortly.
As the content is still in progress, it is recommended that you check back here occasionally for the latest updates.
The content below describes the new features, improvements, and bug fixes included in the October 2026, 2026.4.0 release.
What’s New
The following table lists the high-level impact (or potential impact, if any) of new features, and how to handle it if upgrading to version 2026.4.0 or newer. Continue reading the Release Notes below the table for a detailed explanation of these features, as well as improvements and fixes.
| Feature | Issues and Actions to Consider |
|---|---|
| Assistant Sidebar |
The assistant now opens as a collapsible sidebar alongside active dashboards, and supports creating widgets and interacting with results directly in the conversation feed. |
| Bring Your Own LLM - Google and Anthropic Support |
Requires registering API keys for Google Gemini or Anthropic models in the Sisense Intelligence Admin settings. |
| Bulk Two-Factor Authentication (2FA) Management |
Administrators can now view and modify the Two-Factor Authentication status of multiple users at once from the Users table. |
| Compose SDK Version |
|
| Dashboard Narrative |
Requires Sisense Intelligence with a configured LLM to generate automated, real-time AI summaries on multi-widget dashboards. |
| Dedicated AI Services for Managed Customers |
Managed single-tenant customers only. Enabled by Sisense Cloud Operations on request. |
| Full Datetime Dimensions for ElastiCubes |
The continuous Days & Time level is not supported on data sources that use a fiscal year. The standard calendar levels and the aggregated Time levels remain available. |
| KPI Chart |
Combines performance metrics, period-over-period comparison values, and sparkline trends in a single widget to save dashboard space. |
| Pulse (Beta) |
Beta. Requires Sisense Intelligence and a configured LLM. Note the limitations documented below. |
| Safe Data Model Renaming |
Display names can be updated without breaking existing dashboards or APIs. Changes are reflected across analytics after the next data model build or publish. |
| Sisense Vector DB & Expanded BYO VDB |
An embedded local database is now used for vector search by default. Custom external Bring Your Own VDB (BYO VDB) options are now deprecated. |
Assistant Sidebar
The Analytics assistant has moved from a full-screen modal pop-up to a collapsible sidebar. You can now work with the assistant directly alongside your active dashboards, keeping your visual context while you converse with it.
What's New
-
A floating icon replaces the previous toolbar icon. It opens and closes the assistant side by side with your dashboard, so you can work with both at the same time. You can resize the assistant's width and drag the floating icon to a different position.
-
The assistant automatically recognizes the active dashboard and its widgets, so you can create and add more widgets through conversation, depending on your permissions.
-
Charts and other visual output generated in the assistant sidebar render inline in the conversation feed, instead of in a separate canvas.
Bring Your Own LLM - Google and Anthropic Support
You can now connect your own Google Gemini (Gemini-3.5-flash-lite, Gemini-3.6-flash, Gemini-3.7-flash, Gemini-3.8-flash) and Anthropic (Opus-4.6, Sonnet-4.6) models to Sisense using Bring Your Own LLM (BYO LLM).
Key Capabilities
-
Google and Anthropic Integration: Configure Google Gemini or Anthropic as a custom LLM provider, alongside the existing OpenAI, Azure OpenAI, and AWS Bedrock integrations.
-
Flexible AI Governance: Tailor your AI infrastructure to your enterprise standards, compliance requirements, and cloud vendor preferences.
-
Unified Admin Configuration: Register and manage Google Gemini and Anthropic API keys in the Sisense Intelligence Admin settings.
Bulk Two-Factor Authentication (2FA) Management
Administrators can now view and manage Two-Factor Authentication (2FA) for multiple users at once, directly from the Users table (Admin > User Management > Users), instead of updating users one at a time.
What's New
-
2FA Status Column: A new 2FA column in the Users table shows whether 2FA is Enabled or Disabled for each user, based on their account configuration.
-
Bulk 2FA Action: When you select one or more user rows, a 2FA action appears in the bulk actions toolbar.
Compose SDK Version
Compose SDK version used in this Sisense release: 2.36.0
Dashboard Narrative
Dashboard Narrative adds automated, AI-generated summaries directly to multi-widget dashboards. By analyzing widget content, structure, and underlying trends in real time, Dashboard Narrative turns complex visual charts into concise, evidence-based natural language insights, saving time and making data more accessible across teams.
Dashboard Narrative requires Sisense Intelligence with a configured LLM.
Key Features & Capabilities
-
Interactive Dashboard Narrative Banner Widget
-
On-Demand Summary: Generates a short overview, placed directly above the main dashboard grid.
-
Designer Controls: Designers can show or hide the widget from the menu bar (Add/Hide Dashboard Narrative Widget).
-
-
Custom AI Context Guidance
-
Dashboard designers can provide free-text AI guidance (e.g., "Tailor for executive overview, highlight Q3 revenue trends, flag week-over-week sales gains above 10% as positive") to focus the narrative on critical KPIs, without exposing the prompt instructions to Viewers.
-
-
Dashboard Export
-
Fully integrated with export workflows. When downloading a dashboard as a PDF or PNG file, users can choose whether to include the narrative widget.
-
-
Compose SDK (CSDK) Pro-Code Support
-
Developers building embedded analytics can programmatically incorporate the
NarrativeWidgetcomponent and define specific widget props for custom narrative generation.
-
Restrictions
-
Text, image, and filter widgets are not supported, and do not affect narrative results.
-
CSDK pro-code supports up to 50 widgets configured for the
NarrativeWidgetcomponent.
Dedicated AI Services for Managed Customers
Managed single-tenant customers with strict data-governance requirements can now have Sisense Intelligence AI services deployed inside their own dedicated Sisense environment. Until now, the AI services ran as shared Sisense cloud services. The only way to run them locally was to deploy the environment like a self-hosted installation, which disconnected it from Sisense cloud management and shared-services features.
Key Highlights
-
AI Services in Your Dedicated Environment: The LLM gateway, AI data service, and similarity service run inside the customer's dedicated environment instead of in the Sisense shared cloud services.
-
Remains Fully Managed: The environment stays connected to Sisense cloud management, so managed upgrades and control-plane features keep working.
-
Works with Bring Your Own LLM: AI requests go to the customer's configured LLM provider.
-
Persists Across Upgrades: The deployment option is kept when the environment is upgraded.
-
No Impact on Existing Environments: Existing managed and multi-tenant environments are unchanged unless this option is enabled.
-
Vector Data Stays in Your Environment: Embeddings used by AI search and indexing are stored in the in-box Sisense Vector DB within the customer's dedicated environment (see Sisense Vector DB & Expanded BYO VDB).
Availability
Available to managed single-tenant customers. Sisense Cloud Operations enables it on request; contact your Customer Success Manager. It does not apply to multi-tenant SaaS or self-hosted deployments.
Key Considerations
-
Private Network Connectivity Is Set Up Jointly: For example, a VPN to the customer's internal LLM gateway is configured together by the customer's IT team and Sisense Cloud Operations. Much of this work is on the customer side and is not automated.
-
Customer-Supplied Configuration: The customer provides the LLM endpoint and credentials (Bring Your Own LLM). Sisense configures the vector storage.
Full Datetime Dimensions for ElastiCubes
You can now group date fields from ElastiCube data sources by their full date and time, down to the second. Previously, this was available only on Live models. ElastiCubes supported only Years, Quarters, Months, Weeks, and Days as continuous date levels, so sub-day analysis required splitting timestamps into separate date and time columns. You can now analyze high-frequency time-series data, such as IoT readings, financial trades, or event logs, on ElastiCube data without restructuring the data or switching to a Live model.
ElastiCube and Live data sources now offer the same date levels, and share a new, simpler date level menu.
Key Highlights
-
Days & Time (Continuous): A new Days & Time level keeps both the date and the time. Break down a date field by Hours, 30 minutes, 15 minutes, Minutes, or Seconds. For example, 03/26/2025 14:00 and 03/27/2025 14:00 remain two separate points, sorted chronologically.
-
Time (Aggregated): Group values by Hours of day, 30 minutes of day, 15 minutes of day, or Minutes of day across all dates. For example, 14:10 on one day and 14:40 on the next day are grouped together under Hours of day.
-
All Chart Widgets: Line, column, bar, and other chart widgets now offer the same time levels as Pivot and Table widgets, on both ElastiCube and Live data sources. Previously, charts offered only Hours and 15 minutes.
-
Date and Time Formatting: On ElastiCube data sources, the Format Date window now includes a Days & Time tab, with the same format options and selectable examples as Live models.
-
Data Browser: As before, you can add a date field to a widget directly at a Days & Time level, instead of adding it and then changing its level. The Data Browser now includes the new values and displays the new menu.
-
Exports, Reports, and Pulse: Time levels are supported when downloading widgets and dashboards as images, PDF, CSV, or Excel, in the Report Manager, and in Pulse.
New Date Level Menu
For both ElastiCube and Live data sources, the date level menu now looks and works the same wherever you select a date level: the widget editor, the new widget preview, and the Data Browser.
-
Seven Levels: The menu lists Years, Quarters, Months, Weeks, Days, Days & Time, and Time, with sub-levels under Days & Time and Time.
-
Letters and Example Values: Each level shows a letter (Y, Q, M, W, D, T) and an example value, such as 2025 Q1 or 03/2025, so you can see the result before you select it. The example follows the custom format set for the field. If the field has no custom format, the example follows the default format, the locale, and the fiscal year setting of the data source.
-
Current Level Indicator: A mark in the menu shows the currently selected level.
-
Level Letters on Date Fields: Date fields in the widget editor show the same letter as the menu (for example, M for Months or 15 for 15 minutes), so you can see the level without opening the menu.
-
Consistent Titles: Field titles and export headers use the same wording as the menu. For example, Hours of day and Hours now produce different titles.
The following examples show the Days & Time and Time sub-levels in the new menu:
Key Considerations
-
Days & Time is not available on data sources that use a fiscal year. This limitation already applied to Live models and now also applies to ElastiCubes. Time and the calendar levels (Years through Days) continue to work with a fiscal year.
-
Existing widgets and dashboards continue to return the same results, because each level produces the same query as before.
-
Filters do not offer the new levels. To filter a time range across all dates, such as an 08:00 to 16:00 shift, use the existing aggregated Hour filter.
-
Time levels below Days are not supported for Min/Max aggregations of date fields.
KPI Chart
A new KPI Chart widget is now available. The KPI Chart combines a primary performance metric, period-over-period comparison values, and a historical sparkline trend in a single widget.
Previously, tracking a KPI alongside its historical trend required building and maintaining two separate widgets (an indicator widget and a line or column chart) with matching measures, filters, and date dimensions. The KPI Chart consolidates all of these capabilities into one configurable visualization, saving dashboard space and simplifying dashboard creation.
Pulse (Beta)
Pulse, first released as a Preview in 2026.3.2, is now in Beta. Describe what you want watched, in your own words, to the assistant, and Sisense turns it into a Pulse: a saved analysis that runs on a schedule, records what it finds each time, and notifies you when your condition is met. Classic Pulse alerts continue to work unchanged, and both appear together on the Pulse page.
What's New in Beta
-
Review Before You Confirm: The assistant shows the Pulse it built, including the data it queries, the condition it checks, and how often it runs. You can revise it in the conversation (for example, "check it daily") before confirming. If a request is outside what a Pulse can watch, the assistant says so and suggests the closest alternative.
-
Supported Patterns: Watch for a value crossing a threshold (optionally with a breakdown of what drove the change), a ranking changing, actuals against plan, a trend, a forecast, or an anomaly. A single Pulse can combine a small number of these patterns.
-
Clear Run Outcomes: Each run reports Met, Not met, Inconclusive, or No data. For trends and forecasts, Pulse compares the result's confidence range against your threshold. When the change can't be distinguished from normal variation, it reports Inconclusive rather than presenting an unreliable number as a finding.
-
Early Data Warnings: If your data cannot support the question you asked, the assistant tells you while you are setting up the Pulse, not after it has been running for weeks.
-
Run History: Every run is recorded, whether or not the condition was met. Open a Pulse from the Pulse page and select History to see each run, its outcome, and the values behind it.
-
Scheduling: Pulses on ElastiCube data run after each successful build. Pulses on Live models run on a schedule you set, with a minimum interval of 15 minutes. Incomplete periods are excluded automatically. You can also run a Pulse on demand at any time, without affecting what its scheduled runs compare against.
-
Cron Schedules and Pause: Set cron-style schedules for more specific timing, and pause a Pulse for a period without deleting it.
-
Notifications: When a Pulse meets its condition, the notification includes what was measured, the values behind it, and a plain-language explanation. Notifications use the same channels as classic Pulse alerts: the in-product notification center, email, mobile, Slack, Zapier, and webhooks.
-
Pulse Page: Pulses created through the assistant appear alongside classic Pulse alerts, marked with a distinct icon. Each tile shows the current value, the result of the most recent run, and the Pulse's query definition and schedule.
Availability
Beta. Requires Sisense Intelligence with a configured LLM. Designer or Admin permissions are required to create a Pulse, and a Pulse can only watch data you already have access to. Administrators control availability on the Sisense Intelligence admin page.
Known Limitations in Beta
-
A Pulse can only be created and revised through the studio assistant (the assistant accessed from its own tab); it is not currently available in the Analytics assistant. There is no in-product editor and no entry point from a dashboard or widget.
-
Slack, Zapier, and webhook destinations are configured on the Pulse after it is created, not while describing it to the assistant.
-
External systems cannot query a Pulse or receive its results programmatically. This is expected to be included in the GA release.
-
Patterns that compare against previous runs need history before they can reach a conclusion. The first run records a starting point, and anomaly detection needs several runs before its results are meaningful.
-
Changing what a Pulse queries resets its comparison history, so the next run records a new starting point.
-
A notification may occasionally be delivered more than once for the same occurrence.
Safe Data Model Renaming
Data Designers and Administrators can now edit data model display names directly from the Data page and Model page menus, without breaking existing dashboards, JAQL queries, custom plugins, or API integrations. Because the user-facing Display Name is now decoupled from the underlying, immutable Identity Name (title/OID), your assets can keep pace with evolving business terminology without cloning models or manually updating dashboards.
Key Highlights
-
Decoupled Architecture: Introduces an editable, user-facing Display Name, while the system Identity Name (title/OID) remains a stable technical contract.
-
Unified UI Experience: User-facing labels across the Data page, Analytics pickers, dashboard chrome, Galaxy lists, Compose SDK UI, and the Sisense Intelligence assistant display, and are searched by, the Display Name.
-
Zero Breakage Guarantee: APIs, JAQL routing, permission checks, backend sync locks, and CSDK query bindings continue to use only the immutable Identity Name or OID.
-
Immediate and Deferred Visibility:
-
Data Page and Model Page: Reflect the new display name immediately upon saving (via the root perspective working copy).
-
Analytics, CSDK, and the assistant: Updated after the next Build or Publish Semantics execution.
-
Sisense Vector DB & Expanded BYO VDB
Sisense now includes an in-box, locally hosted Vector Database (VDB). It provides complete data locality for AI similarity and search services, without requiring external cloud connections (such as MongoDB Atlas) or separate customer-managed vector stores.
This gives customers full flexibility and control over where vector data and embeddings reside, in line with enterprise security, data sovereignty, and strict privacy policies.
What's New & Key Highlights
-
Default In-Box Vector Store: When no explicit external VDB connection is supplied, Sisense similarity and AI indexing services now use the embedded local MongoDB instance (upgraded to support vectorSearch) by default.
-
Elimination of External Cloud Dependencies: Self-hosted and regulated single-tenant deployments (e.g., enterprise managed environments) can run AI search, member indexing, and NLQ features entirely within their local cluster, without exposing data to external cloud services.
-
Admin Migration Controls and UI Guidance: The Admin settings now include a simplified migration toggle and guidance for moving existing Bring Your Own (BYO) VDB setups to the standardized in-box Sisense VDB.
-
Deprecation Notice for Custom BYO VDBs: Custom BYO VDB provisioning APIs and UI controls are now deprecated. Customers currently using custom external VDBs are encouraged to migrate to the in-box local VDB for simpler deployment, better stability, and lower operational maintenance.
Important Migration Guidance
-
New Customers: All new installations automatically use the in-box local Vector DB.
-
Existing BYO VDB Customers: We recommend migrating to the local Sisense VDB using the automated administrative migration sequence. If your organization needs to remain on a custom external VDB, contact Sisense Customer Success or Support about entitlement options.
What’s Improved
Assistant
-
Chart and Table Toggle in the Canvas Header: The toggle between a chart result and its table view is now in the canvas header, with updated icons and tooltips, and is scoped to widget view.
-
Query Transparency and Definition Chips: Building on the chip-based query definition introduced in 2026.3.1, this release makes chip labels readable and consistent across the assistant canvas and the Query Build card.
-
Measure Labels: Measure chips follow a consistent naming rule, using the field's friendly name where one is defined, rather than the system-generated name.
-
Filter Values: Filter chips show the filter's values alongside the field name (for example, Country: United States), following a consistent rule across filter types.
-
Date Filter Formatting: Date filter chips render at the filter's own level of granularity (for example, Date: 2013), instead of as a raw ISO timestamp.
-
Dashboard Filters as a Single Indicator: Dashboard filters applied to a result appear on the canvas as one expandable indicator, rather than as individual chips. Widget filters are shown before dashboard filters, matching the order in which they are evaluated.
-
-
AI-Ready Semantic Layer and Calculated Dimensions:
-
Calculated Dimensions in Natural Language Queries: Shared formulas that represent row-level grouping keys are now classified as calculated dimensions rather than measures, so the assistant can group by them correctly. Previously, a calculated dimension reached the model shaped like a measure, which produced a broken query with no error shown.
-
Shared Formulas in Natural Language Queries: Previously, if any single shared formula failed to translate, none of the model's shared formulas reached the assistant. Formulas are now translated individually, and the parser accepts formulas containing escaped quotes, newlines, and data model references with parentheses.
-
-
Smoother Conversation Flow: The assistant no longer interrupts you mid-conversation. You can keep typing while an answer is being written, and the view stays where you left it instead of jumping to follow new output. Your question stays anchored, with the answer appearing below it, and expanding a query card no longer returns you to the bottom of the thread. The assistant panel now stays open until you close it, so clicking elsewhere on the dashboard no longer ends your session.
-
Dashboard Access via the assistant: The assistant can now work with any dashboard you have access to. Previously, it could only retrieve dashboards created by the assistant. Now, when you ask the assistant about a dashboard, it can find and act on any dashboard you're permitted to view in Sisense. Access is unchanged — the assistant only surfaces dashboards you could already see in the product.
Calculated Dimensions - Row-Level Date Functions
-
Following the launch of Calculated Dimensions (CD) for self-service data transformations, key date functions have now been added to speed up common expression use cases. This release expands the Calculated Dimension Function Library with row-level date manipulation capabilities. Row-level date functions are evaluated at query runtime, without requiring aggregations inside the CD expression.
Current Date Function
-
Real-Time Evaluation: CurrentDate() evaluates the current date dynamically at query runtime, for time-elapsed calculations (e.g.,
DDiff(CurrentDate(), [Order_Date])). CurrentDate() takes no parameters.
Examples
-
HDiff(CurrentDate(),[Admission_Time]) -
CASE WHEN [Admission_Time] < CurrentDate() THEN 1 ELSE 0 END -
CASE WHEN [Admission_Time] >= CurrentDate() THEN [Admission_Time] ELSE CurrentDate() END -
CASE WHEN CurrentDate() >= '2025-12-12' THEN 1 ELSE 0 ENDNote:
A date written as text also works.
-
If([Admission_Time] >= CurrentDate(), 1, 0) -
Concat([Name],CurrentDate())
A calculated dimension must include at least one original model column, so CurrentDate() alone, as the entire formula, does not work. This also applies when CurrentDate() is part of a larger formula. For example, the following formula fails:
CONCAT(LEFT(CurrentDate(),4),RIGHT([Admission_Time],7))Date Component-Extraction Functions
Calculated Dimensions now include date component-extraction functions. Each function extracts one component (such as the year, month, or hour) from a date, datetime, or timestamp column and returns it as a number. The functions work the same way across Live and ElastiCube data sources, in every widget that uses a calculated dimension, and in Compose SDK.
-
Supported Functions: GetYear(), GetQuarter(), GetMonth(), GetDay(), GetHour(), GetMinute(), and GetSecond().
-
Where to Find Them: In the Create New Formula dialog for a calculated dimension, open the Functions tab, select Date & Time, and choose a Get function (for example, Get Day). Each function has a catalog entry with a description and examples.
-
Flexible Usage: The numeric result can be used anywhere a number is accepted, including inside expressions (such as text functions, CASE WHEN, and IF), in comparisons (such as
>=or<), and in arithmetic calculations. -
Clear Validation: A clear error message appears when a function is called with the wrong number of arguments.
Examples
-
GetMinute([Date]) -
CASE WHEN GetHour([Date]) >= 5 THEN 'After 5AM' ELSE 'Before 5AM' END
Limitations
-
The functions are supported only in calculated dimensions. Using one in a measure returns an error such as:
GetMinute is not supported in measures. Use it only in calculated dimensions. -
GetWeek() is not supported.
-
The functions are evaluated on row-level data, so the date level set on the field (for example, Months) and fiscal year settings are ignored.
-
Seconds are always returned as whole numbers. When a database returns fractions of a second, the value is rounded down.
-
Calculated Dimensions - ToString Function
-
Calculated Dimensions now include the ToString() function, which converts a value of any type to its text representation. Previously, ToString() was available only in custom columns and custom tables, where it is evaluated once when the ElastiCube is built. In a calculated dimension, ToString() is evaluated dynamically at query runtime, and works the same way across Live and ElastiCube data sources.
-
Syntax:
ToString(value)takes a single argument of any data type and returns a text value. -
Where to Find It: In the Create New Formula dialog for a calculated dimension, open the Functions tab and select ToString. The function has a catalog entry with a description and an example.
-
Flexible Usage: The text result can be used anywhere text is accepted, including inside other text functions (such as Concat), CASE WHEN, and IF expressions.
-
Consistent Behavior: ToString() in a calculated dimension behaves the same as ToString() in custom columns and custom tables.
-
Clear Validation: A clear error message appears when the function is called with the wrong number of arguments.
Examples
-
ToString([Order_ID]) -
Concat('Order #', ToString([Order_ID]))
-
Centralized AI Feature Credit Management
-
Tenant Administrators now have granular control over who can use specific AI features, how monthly credits are distributed among teams or individual users, and how consumption limits are enforced. You can budget monthly credits by tenant, user group, or user; provide top-up allocations; and set consumption alerts. A new Usage Analytics dashboard is also available.
-
Credit Budgets by Entity: Tenant admins can now set a monthly credit budget per tenant or user group. A user who belongs to multiple groups inherits the highest single group allocation, rather than a cumulative total. A Split equally option divides a group's credit pool evenly across its members.
-
Top-Up Allocations: Admins can allocate additional credits on top of the current monthly limit at any time, without resetting the cycle's consumption.
-
Usage Analytics Dashboard: A new Usage Analytics view under Sisense Intelligence shows credit consumption, query success rate, estimated LLM cost, and active AI users. It includes breakdowns by tenant and user group, the top credit consumers, and a daily consumption-versus-budget trend.
-
Credits and Budgets API Coverage: Credit allocation, per-user credit limits, and a user's effective (resolved) credit balance are all available via REST API, alongside the existing feature-management endpoints.
-
Centralized AI Feature Management
-
The initial release of Centralized AI Feature Management introduced the consolidated Feature Management page under Sisense Intelligence, and cascading access controls (General → Tenant → User Group). This update delivers significant improvements, architectural decoupling, and administrative consolidation.
Key Improvements & Enhancements
-
Search and Indexing Setup: Search and indexing require the Cloud Linked Features setting to be enabled. This applies to managed cloud and self-hosted deployments alike.
-
Search Indexing and Controller Decoupling:
-
Search indexing has been realigned with the new Feature Management design.
-
Controller logic and feature gating for Semantic Enrichment have been separated.
-
-
Feature Access Tracking and Telemetry: End-to-end testing coverage and telemetry tracking have been added for AI feature usage and access governance.
-
Data Modeling - Join Type Configuration Restricted on Legacy Relation Models
-
To ensure query correctness and alignment with Outer Join prerequisites (which require Direct Relations), the Join Type selector in the Data Model UI is now disabled (read-only) for data models and perspectives that use legacy relation types.
-
Visual Clarity: The join type remains visible so you can see the active join configuration, with a tooltip explaining why it cannot be changed directly in legacy models.
-
Perspectives and Inherited Joins: This restriction also applies across model perspectives, to prevent invalid changes to inherited joins.
-
Backward Compatibility: Join definitions in existing models are preserved. To configure or modify join types, duplicate the model using Duplicate with Direct Relations; all join definitions are kept and become editable.
-
Filter Widget - Date Filters (Beta)
-
A new Calendar filter type is now available for datetime dimensions on filter widgets. Dashboard builders and viewers can select one or more specific dates using a calendar interface, providing a streamlined alternative to standard list filters.
Key Capabilities
-
Flexible Selection Modes: Select a single date directly from the calendar panel, or enter one manually in MM/DD/YYYY format. Real-time validation flags an incorrect format or an invalid date (e.g., February 29 in a non-leap year).
In multi-select mode, choose multiple discrete dates. An overflow counter (+N) with a hover tooltip lists every selected date. Consecutive selections render as a continuous range in the UI, but are still sent as a list of query members, so query performance is the same as with a standard list filter.
-
Quick Date Navigation: Jump instantly to the Earliest Date, Today, or Latest Date within the available data range, or pick a date outside the currently populated range.
-
Theme and Localization Support: Supports system Look & Feel themes and color mapping, and is localized for all supported languages.
-
MCP Server - Build Dashboards from AI Agents
-
MCP-compatible agents (Claude, Cursor, and others) can now assemble Sisense dashboards, not only run queries and build single charts. This extends the MCP Server GA from Sisense version 2026.3.2, which covered exploring data and building charts under the signed-in user's permissions.
What's New
-
New
buildDashboardTool — After charts exist (created withbuildChart), the agent can create a dashboard; add, remove, or replace charts; update the title and row layout; add filters; or open an existing Fusion dashboard. -
Interactive Dashboard View — The dashboard renders in the MCP client with Compose SDK, using the same governed semantic layer as charts.
-
Min/Max Aggregation for Date Fields
-
Min/Max aggregation for date fields, introduced in Sisense version 2026.3.2, now supports Compose SDK and fiscal year settings.
-
Compose SDK Support: Min/Max date measures now display, filter, and export as dates in Compose SDK components, including tables, pivot tables, and indicator charts.
-
Fiscal Year Support: Min/Max aggregation for date fields now works with data models that use a custom fiscal year.
-
Publishing Semantics - Increased Coverage
-
Publishing Semantics now supports additional data model changes, so you can apply the following without running a build:
-
Perspectives: Quickly create and edit perspectives, including adding and removing tables. A build is no longer required to make them operational.
-
Hiding Fields: Hide fields in your data model.
-
Smart Matching: Apply Smart Matching changes.
-
Fiscal Year: Configure the fiscal year for your data model.
-
Semantic Enrichment - Error Logs
-
Semantic Enrichment now provides a report that explains why specific tables and columns were not enriched. In the Data assistant menu, under Advanced options, select the new Download Semantic Enrichment Report item to download a JSON report of the latest enrichment run for the open data model or perspective.
The report lists each table and column that was not enriched, along with the reason (for example, statistics not calculated or an unsupported column type). You can then fix the model and re-run enrichment, add descriptions manually, or share the report with Sisense Support.
Sisense Intelligence Search - GA
-
Sisense Intelligence Search is now generally available (GA).
Building on the previous Beta capabilities, this release delivers a production-grade search experience for quickly finding, previewing, and reusing existing dashboard widgets across the platform. By surfacing rich metadata, refined result filtering, and direct dashboard actions, Sisense Intelligence Search eliminates duplicate effort, reduces manual widget rebuilds, and accelerates data discovery across your organization, all while respecting strict share-level permissions.
This release also hardens the AI platform behind search to production quality, with tuned match relevance, resilient large-scale indexing, and deeper assistant integration, so the engine underneath is as dependable as the experience built on top of it.
What's New in GA
-
Refined Search Result Experience
-
Responsive Layouts: Browse search results using flexible spotlight-panel and grid views, optimized for different screen sizes and result volumes.
-
Per-Chart Visual Placeholders: Quickly identify visual types (e.g., pivot tables, bar charts, line graphs) via distinct chart placeholders before opening a result.
-
Persona-Based Filtering and Pagination: Refine results based on user roles, and navigate large result sets with smooth pagination.
-
-
Rich Metadata and Trust Displays
-
Contextual Metadata: Each search result displays critical context, including:
-
Widget name
-
Parent dashboard name
-
Underlying data source/data model
-
Last modified date
-
-
Clear Operational States: Polished UI indicators guide you through non-standard states, such as initial workspace indexing, zero-match queries, or system connection errors, providing actionable next steps rather than silent failures.
-
-
Direct Actions from Search Results
You can perform complete dashboard actions directly from search results, based on your granted permissions:
-
Interactive Preview: Preview full widget visuals and data without leaving the search surface.
-
Add to Dashboard: Insert any discovered widget into a new or existing dashboard with one click.
-
Jump to Source: Navigate directly to the source dashboard, with the widget highlighted in its native context.
-
-
Match Quality and Indexing
-
Tuned Relevance and Retrieval: Relevance thresholds, field weighting, and acronym/terminology matching are tuned against a benchmark dataset and evaluation harness, so the best result surfaces first and off-topic matches are held back.
-
Resilient, Production-Scale Indexing: Indexing is now resilient and resumable at scale. A full re-index runs automatically the first time search is enabled, and a scheduled refresh keeps the index current afterward.
-
Owner-Only Draft Search: Draft dashboards are indexed and searchable only by their owner, keeping unpublished work private.
-
Security & Governance
-
Share-Level Permission Scoping: Search results are strictly scoped to your existing dashboard share permissions. You can only search, preview, and reuse widgets from dashboards you are explicitly authorized to view.
-
Zero Credit Consumption: Intelligence Search operates within standard system governance and does not consume AI credits.
Technical & Integration Details
-
API Endpoints: Consumes the AI Platform's governed semantic search contract (
/api/v2/ai/semantic-search/*). -
Indexing: Dashboards and widgets are automatically indexed when they are created or updated. The search interface displays an indexing status prompt if new content is still being processed.
-
What’s Fixed
Access Control
-
Previously, users could select a narrower permission level (for example, Can View) for a subfolder even when they had broader permissions (for example, Can Design) inherited from a parent folder. The sharing dialog now correctly enforces permission inheritance by disabling options that are more restrictive than those granted by the parent folder. Additionally, the Make Co-Owner option is now correctly disabled for users with the Viewer Plus role.
-
Previously, users could select a Can View permission for a dashboard or subfolder even when they had higher Can Design permissions inherited from a parent folder. The sharing dialog now correctly enforces permission levels by disabling options that are narrower than those granted by the parent folder, ensuring consistent access control across the folder hierarchy.
Add-ons
-
Export Modifications - Previously, exporting large CSV files (exceeding ~512 MB) using the Export Modifications add-on would fail with an error (
ERR_STRING_TOO_LONG) or cause the system to crash due to memory limits. The export logic now handles large data volumes more efficiently, ensuring successful exports and improved system stability during heavy data operations. -
Export Modifications - Previously, decimal-place formatting was lost when exporting widgets to CSV while the Export Modifications add-on was enabled. Numeric decimal masks defined in the widget's metadata are now correctly preserved and applied during both buffered and streamed CSV exports, even when dashboard filters (such as "Top N") are active.
Analytical Engine
-
Previously, ec-qry pods could enter an indefinite crash loop during startup, preventing dashboards from loading and resulting in "Error querying your data model" messages. This occurred because the routine responsible for cleaning up stale local storage failed to remove non-empty directories, causing a fatal error in the underlying database engine (MonetDB). Stale directories are now correctly handled, allowing pods to initialize successfully and maintain query availability, particularly in environments with multiple query replicas or Active/Standby configurations.
APIs
-
Previously, the
POST /llm/v1/responsesendpoint failed with a 503 error (LlmProviderUnavailable) whenever a streaming response was requested. This occurred because the system incorrectly attempted to JSON-encode the streaming data instead of delivering it as a continuous stream. The endpoint now correctly supports streaming, so users and integrations relying on the v1 API path receive real-time responses as expected.
Assistant
-
Previously, the CSV download option on an assistant result did not produce a file. Downloading results as CSV now works as expected.
-
Previously, LLM error messages (such as "The LLM model schema is invalid") incorrectly displayed "Details: undefined", "Details: null", or a raw
{details}token when the system provided no additional error details. Error messages now correctly omit the details clause when no further information is available. -
Previously, the Analytics assistant remained available to dashboard owners even when access was disabled in the data model's security settings. The assistant dock now correctly shows a "Disabled" state with an explanatory tooltip when access is restricted via the data model, and is hidden entirely for users who lack the required feature access.
-
Previously, the assistant tab failed to load and displayed a "Something went wrong" (404) error when Sisense was deployed behind a reverse proxy with a non-root subpath (for example,
/subpath/). This occurred because the assistant's API requests were incorrectly sent to the server root instead of honoring the configured proxy subpath. The assistant now includes the proxy subpath in all of its requests, ensuring full functionality in proxied environments. -
Previously, long AI-generated chart and query titles could push widget header controls, such as Download and Add Tile, out of view. Generated titles are now capped at 60 characters so the header controls remain accessible.
-
Previously, clicking the "+" button in the assistant to start a new conversation, or using the "back" button in the chat history, sometimes caused the application to crash with a "Something went wrong" error, both on dashboards and in the widget editor. The buttons now work as expected.
Build
-
Previously, publishing complex Live models with a large number of columns could cause a significant CPU spike and thread saturation in the Analytical Engine, because the system triggered thousands of individual, synchronous translation requests for model statistics. These requests are now batched and grouped by table, reducing communication overhead and ensuring system stability while the model is published.
Compose SDK
-
Previously, using a non-date column (such as a text-based category) in the KPI chart's "Category" slot caused tooltips to display incorrect Unix epoch dates (e.g., "Jan 1, 1970") and comparison captions to show irrelevant time-based labels such as "vs prior year." The component now correctly identifies the data type of the category column and displays the appropriate labels and comparisons.
Dashboard Co-Authoring
-
Previously, when using Dashboard Co-Authoring in Shared Mode, filters from a source dashboard remained permanently applied to a target dashboard after a Jump to Dashboard (JTD) action. This occurred even if the "Reset dashboard filters after JTD" setting was enabled, because the system failed to clear the temporary jump filters on the shared version of the dashboard. The target dashboard now correctly restores its original filters when it is next opened.
-
Previously, the dashboard share modal displayed an incorrect permission level for users who had higher-level permissions inherited from a parent folder. For example, if a dashboard was shared with a user as Can View and its parent folder was shared with the same user as Co-Owner, the dashboard share modal displayed the user as Can View. The dashboard share modal now correctly reflects the user's inherited Co-Owner status.
-
Previously, deleted widgets remained in the dashboard layout for co-owners after the dashboard owner republished the dashboard. This occurred because co-owners' per-user dashboard copies were reconciled only when they manually opened the dashboard in the Sisense UI, causing stale data (and potential 404 errors) when retrieving the dashboard model via the REST API or Compose SDK. Deleted widget references are now removed from all co-owner layouts during republishing.
Dashboards
-
Previously, users with "Can design" permissions were unable to import dashboards into folders shared with them. The import process incorrectly required ownership of the target folder, resulting in a "Failed Importing Dashboard" error even when the user had the necessary design rights. Import behavior now correctly aligns with dashboard creation permissions, allowing authorized editors to import dashboards into shared folders.
-
Previously, changing a dashboard's owner and republishing it caused widget records to be duplicated in the database. This occurred when widgets were flagged with a co-authoring marker (
createdInPrivateMode), even if co-authoring was disabled. These widgets are now correctly handled during ownership transfers, preventing the accumulation of "ghost widgets" and potential UI performance issues.
Data
-
Previously, a third-party onboarding panel ("What would you like to dive into?") was incorrectly displayed on the Data tab, covering the ElastiCube list and preventing users from managing their data models. This was caused by an external configuration in the user-assistance integration, and has now been resolved.
Data Models
-
Previously, the OIDs option appeared twice in the column menu for columns in Live models, because the menu's action set was merged without removing the duplicate OID entry. The OIDs option now appears only once in the column menu.
ElastiCubes
-
Previously, on self-hosted Linux deployments, importing an
.sdatamodel under a new name (different from its original exported title) caused the import to fail and the ElastiCube to disappear from the Data page. This occurred because the underlying database within the exported archive was not renamed to match the new model title, leading to connection failures. The import process now properly renames the internal database, so renamed models import successfully.
Email Reports
-
Previously, sending large email reports (e.g., 8–11 MB reports with embedded images) failed with a timeout error. This occurred because the system's internal inactivity timer for email transfers was set too low, causing the connection to abort prematurely under slow network conditions. The timeout has been increased so that large reports have enough time to complete their transfer.
EmbedSDK
-
Previously, when navigating between dashboards within a persistent iframe using the Embed SDK's
dashboard.open()method, each navigation added an entry to the browser's session history. As a result, the browser's Back button stepped back through previously opened dashboards instead of navigating the host application. A newreplaceoption has been added todashboard.open(). When set totrue, navigation uses "replace" semantics instead of "push," so the browser's session history no longer grows with each navigation.
Explanations
-
Previously, in the Explanations feature, dashboard-level filters that were explicitly disabled for a specific widget were still applied to the generated insights. This could cause the Explanations chart to display incorrect results, or to fail to render with a console error when the resulting data set was empty. The Explanations feature now correctly respects widget-level filter configurations, keeping the widget's displayed data consistent with the generated explanations.
Filters
-
Previously, clicking a column or bar in a chart incorrectly removed the value from the date filter instead of selecting it. Additionally, when only one value remained, the filter stopped responding to further clicks and could not return to the Include All state. Clicking a chart element now correctly narrows the selection to that value and preserves the filter's multi-selection mode, so users can clear the selection as expected.
-
Previously, the Select All and Clear All buttons in the Filter UI, along with their hover descriptions, remained in English regardless of the user's profile language settings. These elements now correctly reflect the selected locale for all supported languages.
Formulas
-
Previously, shared formulas were not correctly included in exported dashboards, causing widgets to fail with an "Invalid Formula" error when imported into environments where the original data model was unavailable. The shared formula content is now inlined within the dashboard artifact, so widgets remain functional and portable across servers, even if the source shared formula is missing on the target system.
Grafana
-
Previously, in multi-node Linux deployments, opening the Grafana monitoring page could cause system-wide downtime. When the Grafana UI attempted to establish a WebSocket connection, the API Gateway dropped the request. This triggered Nginx's passive health checks to incorrectly mark all API Gateway replicas as unhealthy, resulting in 502 errors for all users. WebSocket upgrades for Grafana are now properly authenticated and proxied, preventing Nginx from disabling healthy upstreams and maintaining system stability.
Infra
-
Previously, the
rke2-corednspod frequently reached its CPU limit, causing automated cloud alerts and potential cluster instability. The CPU limits for the CoreDNS service have been removed to prevent throttling and ensure consistent cluster health across Linux deployments. -
Previously, following an upgrade to version 2026.3.1, the knowledgegraph pod could enter a CrashLoopBackOff state. This was caused by a bug in the Helm chart that incorrectly deleted the Dgraph data directory during the upgrade if a specific version marker was missing. Existing data is now preserved or safely migrated during upgrades, and the service can automatically recover from schema inconsistencies instead of entering a crash loop.
Installation
-
Previously, the
changePositionOfTagAndDescriptionmigration script could cause the system upgrade to fail with an out-of-memory (OOM) error in environments with a very large number of tagged dataset tables. The migration now processes data in paginated batches with checkpoints, so it is crash-resumable and can process large datasets without exceeding memory limits.
Multitenancy
-
Previously, Tenant Administrators were unable to view their own tenant's credit limit on the Credits & Allocations page, and the credit pool values were displayed as "—". This occurred because the underlying API route was incorrectly restricted to System Administrators only. Tenant Administrators can now view their own credit limits and allocation details.
-
Previously, the Groups scope on the AI Credits management page incorrectly displayed the total environment credit balance as the available pool for all tenants, so tenant administrators saw the entire deployment's credits as "Free to allocate" rather than their tenant's own limit. The individual tenant's credit limit is now correctly displayed and enforced as the pool for group-level allocations, so credits allocated to a tenant are accurately reflected when managing its internal user groups.
-
Previously, user groups with zero allocated credits were incorrectly able to access AI features on their first request. The system now correctly enforces credit limits, so groups without an allocation cannot use AI functionality.
-
Previously, user activation links for new tenant users were generated with a duplicated tenant name in the URL, leading to an "API not found" error. The tenant name is now correctly processed during SSO redirection and user activation flows, so users can access the activation page.
Natural Language Query (NLQ)
-
Previously, natural language queries (NLQ) involving a forecast on coarse date granularities (such as quarters) failed with a backend execution error, because the system incorrectly passed an internal
spanparameter to the forecast function during preview dataset generation. Forecast parameters are now correctly resolved before query execution, so users see accurate chart previews for forecasted data across all time granularities. -
Previously, the assistant could generate broken formulas or return incorrect calculation results for date-based aggregations and differences, because mandatory date levels (such as Days, Months, or Years) were not consistently enforced and validated locally before processing. Additionally, the formula editor's guidance for hour-based calculations was incorrect. Date levels are now correctly enforced and validated, and the hour-based arithmetic guidance has been corrected.
-
Previously, natural language queries (NLQ) could silently drop filters and return incorrect, unfiltered results when the column-identification step correctly named a column but associated it with the wrong table in the data model. The system now searches for exact column-name matches across all tables in the schema, so filters are applied correctly even when the initial table association is ambiguous.
Notebooks
-
Previously, the PostgreSQL connection form in Notebooks did not include the "Schema" or "Additional Parameters" fields, and existing connections from the Data tab had their schema settings stripped or overwritten by blank defaults. This caused connection timeouts for users with a large number of schemas. The Notebooks PostgreSQL connection form now includes these fields and correctly preserves saved schema values, consistent with the Data tab.
Perspectives
-
Previously, dashboard owners were unable to share dashboards with groups when the dashboard's data source used Perspectives. Attempting to share such a dashboard, or to change a group's permission to "Co-Owner", failed silently in the UI due to a server-side error. Group permissions are now correctly resolved for dashboards using Perspectives, so sharing and ownership management work as expected.
Pivot Tables
-
Previously, in Pivot tables, enabling data bars for a column caused subtotal rows to display the group's maximum value instead of the configured sum. The pivot engine now correctly preserves manual subtotal aggregation settings when data bars are applied.
-
Previously, Pivot 2.0 widgets could remain in an infinite loading state, or show an error message only after 5 minutes, when a query was canceled by the data source (for example, Snowflake) due to a timeout. This occurred because canceled or abandoned queries were not correctly acknowledged in the system's internal queue, creating a backlog that prevented new queries from being processed. Canceled queries are now properly cleared, so the UI surfaces errors immediately and subsequent requests perform consistently.
Pulse
-
Previously, the Pulse assistant misreported the number of Pulse workflows and could not distinguish between workflows owned by the user and those shared with them. The assistant now correctly identifies workflow ownership and provides accurate counts for enabled and disabled workflows. Users can also mute or unmute notifications for shared workflows they do not own.
-
Previously, the confirmation message the assistant showed before creating a Pulse workflow could be mistaken for a completion summary, leading users to believe the Pulse was already active. The assistant now explicitly states that the Pulse has not been created yet, and provides clear suggestion chips to confirm and finalize the setup in a single step.
Report Manager
-
Previously, Report Manager sent report emails even when the global Send Emails setting in Admin > Server & Hardware > Email Settings was disabled. Report Manager now honors this setting. When Send Emails is disabled, reports without an archive destination are skipped entirely, while reports with an archive destination still run and archive, but no longer send emails. Skipped runs are marked with a warning in the report's Last Run status.
-
Previously, reports in the Report Manager could enter a continuous loop of failing and retrying when an authentication token became invalid or expired. A secondary error in the masking logic caused the request to hang indefinitely instead of returning a standard "not authorized" response, leading to a timeout and a subsequent retry cycle. Authentication failures are now handled correctly, so the system returns a proper error response and the report execution loop no longer occurs.
-
Previously, heavy Excel exports via Report Manager or the Export Modifications add-on could cause the external-plugins service to become unresponsive and enter a crash loop. This occurred because large export tasks (e.g., reports with a high cell count) blocked the service's main processing thread, leading to missed heartbeats and service restarts. The export logic has been moved to a dedicated background thread, so the service remains stable and responsive even during intensive export operations.
-
Previously, in Report Manager, reports from non-system tenants were archived to an incorrect directory on SFTP servers. The system incorrectly applied a local storage path prefix to the remote SFTP destination, causing files to be uploaded to a newly created directory structure (e.g.,
/opt/sisense/storage/tenants/{id}) instead of the configured root or target folder. Reports now correctly archive to the SFTP path defined in the tenant configuration. -
Previously, reports in Report Manager intermittently failed during the initialization phase with a
TypeError: Cannot read properties of undefined (reading 'nonSisenseUser')error. This occurred when multiple reports were triggered concurrently, causing the system to mishandle user token caching. Concurrent report executions no longer interfere with the shared token cache, providing stable report generation even under high load. -
Previously, duplicate email reports were sent when a dashboard export exceeded the internal request timeout. This occurred because the system incorrectly retried the report generation and delivery process multiple times if the initial attempt took longer than three hours. These requests are no longer retried automatically, preventing redundant emails from being sent to subscribers.
-
Previously, Viewers lost access to the Report Manager tab after upgrading to version 2026.1.2, because custom role permissions were incorrectly overwritten by default settings during the upgrade. Existing customer configurations are now preserved and correctly merged with system defaults during upgrades.
Search
-
Previously, the AI Search (Beta) tab failed to load and displayed an
errors.responseErrormessage when Sisense was deployed behind a reverse proxy with a subpath (for example,/test/). This occurred because critical API requests for system settings and global configurations were incorrectly sent to the server root, dropping the required subpath prefix. All AI-related frontend modules now respect the configured Proxy URL, so the Search tab functions as expected in subpath environments.
Single Sign On (SSO)
-
Previously, SSO authentication and user activation failed with an "API not found" error. This occurred because the tenant name was incorrectly duplicated in the URL (e.g.,
{instanceUrl}/{tenant}/{tenant}/) when accessing the system via the tenant-specific URL or an activation link. The tenant name is now correctly identified and processed, preventing duplication and allowing successful redirection and login.
Sisense for Mobile
-
Previously, users were unable to log in to the native Sisense Mobile App when native email-based Two-Factor Authentication (2FA) was enabled. The app failed to render the 2FA input screen, showing a blank blue or white screen and blocking authentication. The login flow now correctly displays the 2FA prompt, so users can enter their authentication code and access the app as expected.
User Parameters
-
Previously, default user parameters (such as
zz_timezone) intermittently failed to resolve within custom import queries, resulting in400 Bad Requesterrors (e.g., "Invalid time zone: null"). This occurred due to a caching conflict when a single connection referenced placeholders in multiple areas (such as both Connection settings and Custom Live Queries). User parameters are now correctly isolated and cached per area, preventing valid default values from being overwritten by nulls.