Self-hosted Retool stable release 3.196
Release notes for the Self-hosted Retool 3.196 stable release.
Retool releases a version on the stable channel each quarter. A stable release is generally four versions behind the cloud-hosted version at the time.
Preparation and testing of a stable version occurs approximately four weeks prior to its release. Stable releases are rigorously tested before they are published. As the release cycle is less frequent, administrators can more easily maintain and upgrade deployments.
Retool supports each stable release for six months. During this time, Retool will release patch updates that contain bug fixes or security updates. Patch updates do not contain functionality changes and can be applied more quickly than performing a full version upgrade.
After six months, a stable release is considered deprecated. You can continue using a deprecated release but it will no longer receive updates. At this time, you should upgrade to the latest stable release.
Self-hosted Retool 3.196
No longer supported
| Release | Released | Digest | |
|---|---|---|---|
| First | 3.196.0 | May 12, 2025 | sha256:9e91e3c24eca2affd730ad4a2126b956945849e3e141d9afa8f06ed9f972148d |
| Latest | 3.196.33 | Nov 13, 2025 | sha256:1ab464c93254071da6d7118d9ddd8141642fa185016e1827b51edbd53c2ca21d |
Major changes in this release
New features, significant changes, and any actions required when upgrading.
| Type ↕ | Change ↑ |
|---|---|
| new | A read/write NFC resource is now available for Retool Mobile A resource-based NFC integration for Retool Mobile now supports both reading and writing NFC tags. |
| improved | App page save compaction Retool made improvements to how app saves are stored, resulting in faster app load times. |
| improved | App-related Debug Tool improvements Debug Tools have been updated to improve performance and optimization debugging. |
| changed | Backend runtime upgraded to Node.js v20.18 in self-hosted Retool 3.163 The backend runtime in self-hosted Retool 3.163 and later uses Node.js v20.18. This may increase CPU and memory usage. |
| improved | Bulk component editing Retool supports editing two or more components at once. |
| improved | Changes to ToolScript file locations ToolScript positioning information is now organized by page. |
| improved | Closed beta for Retool Database UI improvements A redesigned Retool Database UI is in closed beta, with a clearer data view, faster navigation, and a new command bar. |
| improved | Custom URL paths for workflow webhook triggers You can now customize the URL of your workflow webhook trigger. |
| improved | Debug Tool searching Debug Tools now support searching. |
| removed | Deprecation of YAML serialization in Source Control Retool will deprecate the use of YAML for protected apps, queries, and resources self-hosted Retool 3.196 and later. |
| new | Disable catch-up commits in Source Control Retool added the ability to disable catch-up commits. |
| new | Error reporting for Retool Workflows Send workflow errors to Sentry and Datadog |
| improved | Improvements for exporting to modules An improved **Export to Module** feature. |
| improved | Improvements to Source Control for workflows Retool added support for new Source Control features on workflows, including branching, multi-element branches, and collaborative branches. |
| new | In-place conversion to multipage Easily convert single-page apps to multipage. |
| new | Multi-step functions Multi-step functions |
| new | New Offline Assets app setting and PDF Viewer component for Retool Mobile New PDF component and offline assets support for Retool Mobile. |
| new | New Retool Event for attempted login New Retool Event for attempted user login. |
| new | New test headers and path parameters for webhook triggers Test your webhook workflow triggers using test headers and test path parameters. |
| improved | NsJail no longer required for custom libraries NsJail is no longer required to use custom libraries in workflows on Self-hosted Retool. |
| new | Personal folder for draft apps Users now have a personal drafts folder in which they can create private apps. |
| new | Publish referenced workflows Automatically detect changes and publish referenced workflows. |
| new | Record user sessions with Fullstory Capture user app behavior for use with Fullstory. |
| improved | Retool AI queries support dynamic model selection Retool AI text queries now support dynamic model selection, allowing users to change AI models from apps and workflows. |
| new | Scanner component improvements in Retool Mobile An improved Scanner component for Retool Mobile is in closed beta, adding support for multiple barcode symbologies, scan modes, and visual scan feedback. |
| removed | Single-page apps can no longer be created All new web and mobile apps are multipage. |
| new | The App Inspector The App Inspector includes app-wide settings, such as custom URL, custom shortcuts, and max width. |
| improved | Updates to Slack connector to support file upload The Slack integration now uses new file upload APIs after Slack ended support for the files.upload endpoint on March 11, 2025. |
| improved | Updates to the Retool Apps landing page The Retool Apps landing page has an updated layout. |
| improved | Usage analytics improvements An improved usage analytics experience is now available. |
| improved | Workflow logging and debugging improvements A series of improvements to the logging and debugging capabilities of Retool Workflows. |
| 31 changes | |
Patch release notes
Bug fixes, improvements, and other incremental updates across all patch releases in this release.
| Type | Description |
|---|---|
| 3.196.331 change↑ | |
| added | Added Google Slides tools to Retool Agents. [#65697] |
| 3.196.322 changes↑ | |
| fixed | Fixed an issue with skipped releases getting unpublished for users with multi-instance releases and spaces. [#67265] |
| fixed | Fixed a bug that caused a ReferenceError Firebase` raw-mode queries. [#67921] |
| 3.196.234 changes↑ | |
| fixed | Fixed an issue causing login loops when signing in with two-factor authentication on Safari. [#65321] |
| improved | Improved keyboard focus management when opening and closing Modal and Drawer components. [#65646] |
| improved | Improved the target of the SkipLink accessibility feature to focus on main content instead of the header. [#65516] |
| security fix | Patched a security vulnerability in the Databricks connector to prevent file inclusion attacks. [#65851] |
| 3.196.191 change↑ | |
| fixed | Fixed an issue where the license status was not always checked when starting the jobsRunner. [#63707] |
| 3.196.181 change↑ | |
| removed | Removed unsupported JDBC connectors. [#64136] |
| 3.196.162 changes↑ | |
| added | Added a new security notification banner for VM2 deprecation warnings. [#63768] |
| fixed | Fixed an issue with SCIM when deactivating users with some providers like Microsoft Entra. [#63684] |
| 3.196.141 change↑ | |
| fixed | Fixed an issue where users could create new elements from the home page when version control was locked. [#63453] |
| 3.196.121 change↑ | |
| fixed | Fixed an issue where the UI crashed instead of showing an upgrade banner when self-hosted customers reached their maximum seat limit on Team and Business plans. [#62935] |
| 3.196.111 change↑ | |
| fixed | Fixed an issue where resources synced from Source Control would not inherit permissions from their parent folder. [#62912] |
| 3.196.91 change↑ | |
| fixed | Fixed an issue where Table cell click events were incorrectly triggered when clicking anywhere in the cell. [#62345] |
| 3.196.74 changes↑ | |
| changed | Updated Retool API to use the OpenAPI 3.0.4 spec. [#61704] |
| added | Added support for config vars and secrets replacements in Retool AI custom headers. [#62105] |
| fixed | Fixed an issue where module query folders were incorrectly added to the parent app when updating preloaded JavaScript. [#62013] |
| fixed | Fixed an issue where protected apps required explicit use access on nested modules in downstream instances. [#62132] |
| 3.196.53 changes↑ | |
| fixed | Fixed an issue where the calendar overlay would still appear in Date Time components when readOnly is true. [#61580] |
| improved | Improved the handling of nonessential metadata in encrypted Temporal payloads during workflow execution. [#61584] |
| changed | Changed version control to lock changes for resources/queries when version control is locked. [#61638] |
| 3.196.45 changes↑ | |
| fixed | Fixed an issue where URL params in single-page apps were not type casting directly. [#61149] |
| fixed | Fixed an issue with IAM authentication that prevented expired Redshift passwords from automatically renewing. [#61282] |
| security fix | Patched an XSRF protection check. [#61356] |
| secutrity fix | Increased restrictions to only allow Admins access to the /api/organization/checkProtectedAppsRepo endpoint. [#61096] |
| security fix | Patched an XSRF protection check. [#61356] |
| 3.196.32 changes↑ | |
| added | Added support for renaming and moving protected resources. [#60858] |
| fixed | Fixed a bug where removing a manifest config did not correctly set the latest version to live for multi-instance releases. [#60816] |
| 3.196.21 change↑ | |
| security fix | Patched CVE-2025-47949 in samlify. [#60881] |
| 3.196.11 change↑ | |
| improved | Improved List Objects API to support include_inherited_access for apps. [#60630] |
| 3.196.0140 changes↑ | |
| added | Added a documentation link for Cascader in the Inspector. [#56524] |
| added | Added frontend and backend validation to prevent app state saves from being overwritten. [#55492] |
| added | Added updated_at and created_at timestamps to all accessRequests API endpoints. [#56702] |
| added | Added getAccessToken API for querying a specific token by ID. [#56857] |
| added | Added Wait block to Add Block menu in Retool Workflows. [#56956] |
| added | Added an API endpoint to invalidate all login sessions for all users of an organization. [#57090] |
| added | Added ability to directly share an app folder with users. [#56310] |
| added | Added secret manager to OAuth2 and Custom Auth flows. [#56644] |
| added | Added public API endpoints to configure AI settings. [#57229] |
| added | Changed workflow execution permissions in apps to require workflow view access. [#56154] |
| added | Added an error message for disabled users attempting to sign in via SAML SSO. [#57251] |
| added | Added new file upload endpoints for Slack to replace the deprecated files.upload functionality. [#57293] |
| added | Added support for bulk editing event handlers for components of the same type [#57191] |
| added | Added the option to specify a custom entityID for SAML SSO [#57222] |
| added | Added top-level navigation on user interaction for custom components [#53021] |
| added | Added the ability to invite users when directly sharing a folder. [#57762] |
| added | Added new filters to the workflow run panel. [#57860] |
| added | Added an API for fetching third-party analytics integrations settings. [#57655] |
| added | Added the ability to filter GET /apps/ API to only show apps using a specified resource. [#57804] |
| added | Added "Create page" and "Toggle pages panel" actions to the command palette. [#57883] |
| added | Added block name search functionality to workflows. [#57873] |
| added | Added new filter in workflow run log. [#57749] |
| added | Added new environment variable RETOOL_CLIENT_MAX_BODY_SIZE to set the maximum request size Retool will accept. [#58206] |
| added | Added Set URL Parameters event handler method in single page apps. [#58143] |
| added | Added GET endpoints for /workflow and /workflow/{id} to the OpenAPI specification for Retool API. [#58355] |
| added | Added rate limiting for Retool Storage retrievals. [#58164] |
| added | Added an option to disable URL encoding in the REST API resource. [#58685] |
| added | Added ability for users to search workflow logs by pluginId. [#58504] |
| added | Added workflowContext to the list of inputs for blocks. [#58747] |
| added | Added Code Executor Health Check in Settings for on-premises deployments. [#59033] |
| added | Added runFunction item to subflow Add block menu. [#59148] |
| added | Added search functionality for admins within their list of configuration variables. [#59188] |
| added | Added the latest API updates to the Stripe resource type. [#59266] |
| added | Added a waitlist callout for AI-generated app functionality on the Apps page. [#59587] |
| added | Added a configurable decimal places option for number inputs in Retool Forms [#59686] |
| added | Added the App Inspector. [#59605] |
| fixed | Fixed a misspelled icon name. [#55715] |
| fixed | Fixed an issue in the Custom Auth settings where a field didn`t support autocomplete and incorrectly showed "undefined" warnings for environment variables. [#55833] |
| fixed | Fixed an issue with schema permissions when migrating schemas in Retool Database. [#59277] |
| fixed | Fixed an issue with streamed query timeouts for Postgres resources. [#56115] |
| fixed | Fixed an issue with the automatic branch cleanup beta feature where cloud branches weren`t properly deleted. [#56147] |
| fixed | Fixed an issue where scheduled workflows could not reference example input data. [#56492] |
| fixed | Fixed an issue with Cascader where defining an option to be its own parent caused a crash. Options that are their own parent are now considered root options. [#56504] |
| fixed | Fixed an issue with loading modules. [#56495] |
| fixed | Fixed an issue where licensed seat limits weren`t enforced for some airgapped users. [#56484] |
| fixed | Fixed an issue where single page PDFs could not be rotated in the PDF component. [#56525] |
| fixed | Fixed an issue where some upgraded Cascaders had incorrect structure in the Inspector. [#56516] |
| fixed | Fixed an issue where specifying a branch for embed API requests didn`t work. [#56536] |
| fixed | Fixed an issue where page-scoped queries were incorrectly being shown as out of scope after the page was renamed. [#56520] |
| fixed | Fixed a bug where membership in many workspaces would preventaccessing the user tools menu. [#56627] |
| fixed | Fixed an issue where large List Views sometimes crashed from too many re-renders. [#56684] |
| fixed | Fixed an issue where changing column width and editing a table cell threw an error, preventing proper cell editing. [#56639] |
| fixed | Fixed an issue where custom authentication may report an error during a non-auth step. [#56732] |
| fixed | Fixed URL escaping response for mobile redirects. [#56730] |
| fixed | Fixed alignment of icons in the settings page theme listing. [#56809] |
| fixed | Fixed an issue with persist row selection and server-side pagination that prevented batch unselection of rows. [#56608] |
| fixed | Fixed an issue where the Alert component would change theme tokens to hex values. [#57006] |
| fixed | Fixed an issue where Insert Document Vector Action did not work for vectors using text-embedding-3-large embeddings model. [#57136] |
| fixed | Fixed an issue where Retool Database resource settings were not used in non-production environments. [#57045] |
| fixed | Fixed an issue with resource connection pooling causing errors during multiple concurrent queries. [#57176] |
| fixed | Fixed an issue with protecting interdependent apps and workflows. [#57306] |
| fixed | Fixed an issue where clicking on a folder crashed the IDE [#57344] |
| fixed | Fixes an issue with SAML SSO login. [#57385] |
| fixed | Fixed an issue with the Manage time zone date format option in Table and Key Value. [#57587] |
| fixed | Fixed an issue where some components had a duplicate editor for maintainSpaceWhenHidden. [#57718] |
| fixed | Fixed icon regression. [#57843] |
| fixed | Fixed an issue with autocomplete for column names in Table filters. [#57842] |
| fixed | Fixed an issue where database connections may be closed sooner than intended. [#57996] |
| fixed | Fixed a recurrent issue with loading the mobile app editor when SANDBOX_DOMAIN env variable is set. [#57098] |
| fixed | Fixed an issue where SSH-tunneled resource connections may be closed unnecessarily. [#58079] |
| fixed | Fixed an issue that added excessive null values to allowedGroupId template fields. [#58078] |
| fixed | Fixed an issue where the Add Row shortcut could interfere with the Save Cell shortcut in Retool Database. [#58092] |
| fixed | Fixed an issue where setting table row height to dynamic caused problems when typing. [#58031] |
| fixed | Fixed an issue where shared events were not shown when bulk editing components. Now, if any of the components selected have no events, "no shared events" is shown. [#58165] |
| fixed | Fixed an issue with save/cancel action buttons on Table cells. [#58558] |
| fixed | Fixed an issue where incorrect Table rows were being edited. [#58713] |
| fixed | Fixed an issue with disabling Form submission in modules, ensuring consistent behavior. [#58635] |
| fixed | Fixed an issue where Alert click events were not specific to the current action. [#58482] |
| fixed | Fixed the loading state of Forms embedded in modules, ensuring submit buttons properly display loading state. [#58686] |
| fixed | Fixed an inconsistency between workflow status shown in the UI and the isEnabled value returned by the /workflows endpoint. [#58753] |
| fixed | Fixed an inconsistency between workflow status shown in the UI and the isEnabled value returned by the /workflows/{workflowId} endpoint. [#58771] |
| fixed | Fixed an issue where SAML JIT users weren`t being added to the external users group. [#58819] |
| fixed | Fixed an issue where Alert value editor sometimes started in FX mode when first added to the canvas. [#58657] |
| fixed | Fixed an issue with same-page scoping on OpenAPI queries. [#58851] |
| fixed | Fixed various issues for the Retool Workflows Run history panel. [#58998] |
| fixed | Fixed an issue with the msodbcsql18 dependency. [#59031] |
| fixed | Fixed preview links in source control PRs for protected and unprotected applications. [#58960] |
| fixed | Fixed an issue with Snowflake resources where dynamic database and warehouse names did not work correctly. [#59103] |
| fixed | Fixed a bug related to new functionality introduced in v1.7.3 of the CLI. [#59237] |
| fixed | Fixed a minor visual issue on the Retool home page where hovering over a protected app misaligned the dropdown menu. [#59250] |
| fixed | Fixed an issue with an error message in the workflow run panel. [#59479] |
| fixed | Fixed model dropdown for image generation when calling Retool AI. [#59625] |
| fixed | Fixed a bug with the in-progress checkbox filter in the workflow run panel. [#59688] |
| fixed | Fixed various issues with the workflow run panel filters. [#59750] |
| fixed | Fixed an issue where alerts would appear in the Run panel of the Workflow IDE too frequently. [#59970] |
| fixed | Fixed an issue where URL hash parameters did not persist across Source Control branching actions. [#60026] |
| fixed | Fixed an issue where resetting a Source Control repository branch may fail. [#59216] |
| removed | Removed the ability to create a global error handler in a multistep function. [#56629] |
| removed | Removed Inspect in Debug Modal option in the State sidebar. [#59051] |
| removed | Removed setOutput module from the Event handler UI. [#58262] |
| removed | Removed quick actions for module containers. [#59569] |
| improved | Improved the messages on the landing page when the Published, Drafts, and Trash tabs are empty. [#56513] |
| improved | Improved error messages to be more user-friendly. [#56753] |
| improved | Improved Android startup and runtime performance. [#56764] |
| improved | Improved readability of longer group names. [#56758] |
| improved | Improved gRPC query performance for services with numerous APIs. [#56864] |
| improved | Improved header tooltip to display multi-selected components for bulk editing [#57376] |
| improved | Improved Table component by showing tooltip for disabled row actions. [#57815] |
| improved | Improved Inspector to reflect when bulk editing components have different values for the same property. [#57462] |
| improved | Improved bulk editing for image file inputs to display mixed values. [#57962] |
| improved | Improved bulk editing by wrapping add-ons and validation editors in a similar style. [#57968] |
| improved | Improved bulk editing for button type to display mixed values. [#58115] |
| improved | Improved Click Cell event handlers to activate when clicking on white space in a cell. [#58107] |
| improved | Improved the user interface of Retool Database. [#58497] |
| improved | Improved Alert component text visibility in dark themes and added more color configuration options. [#58575] |
| improved | Improved design of the Debug Tools state with minor fixes. [#58869] |
| improved | Improved visibility of setup errors in JavaScript blocks. [#58725] |
| improved | Improved resource permission error messages by adding the resources displayName`. [#59200] |
| improved | Improved the Custom Component Library CLI to allow non-interactive mode for build, deploy, and sync commands. [#58835] |
| improved | Improved the tooltip description for the database column index lightning bolt. [#59630] |
| improved | Improved the Used in list for modules to include nested usage with a new [Nested] tag. [#59508] |
| improved | Improved export to module functionality. [#59505] |
| improved | Improved the UI for path params and test headers. [#59697] |
| improved | Improved the error message for asynchronous webhook-triggered workflow timeouts. [#59608] |
| improved | Improved character support for Source Control branches of mobile apps. (#59817) [#59817] |
| changed | Changed component documentation links to reference the guide for the component when available, instead of the component reference. [#56769] |
| changed | Changed Boolean cells in the Table component to show with full opacity, regardless of whether they are editable. [#56790] |
| changed | Changed the order of State properties to be ordered alphabetically, case-insensitive. [#56805] |
| changed | Changed the location of the Use example JSON button. [#58119] |
| changed | Changed permission group rules to prevent duplicate group names with case-insensitive matching. [#58360] |
| changed | Changed the error message that appears when a user attempts to put a Module inside a List View. [#58555] |
| changed | Changed workflow names to include the date by default. [#58673] |
| changed | Changed the Retool API to support updating direct sharing permissions for apps and folders via new endpoints. [#58818] |
| changed | Changed multi-step functions to be generally available. [#59086] |
| changed | Changed the undo functionality to limit it to the last 20 operations. [#59394] |
| changed | Changed wording for use as example JSON button [#59707] |
| changed | Changed component positioning information in ToolScript to be organized by per-page. [#59729] |
| deprecated | Deprecated YAML serialization for apps and resources. [#59687] |
| security fix | Fixed a bug where the responses for previewed queries were not properly sanitized. Sanitization in preview queries is now at parity with sanitization in regular query. [#55130] |
| security fix | Fixes a security issue by sanitizing the auth header in Bitbucket error logs. Relevant for users with Bitbucket as their source control provider. [#59472] |
| 171 changes | |