Self-hosted Retool stable release 4.86
Release notes for the Self-hosted Retool 4.86 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.
Retool provides versioned product documentation for supported stable releases. When browsing Retool Docs, use the version dropdown menu in the navbar to switch to a relevant version.
Self-hosted Retool 4.86
Latest releaseCurrently supported
| Release | Released | Digest | |
|---|---|---|---|
| First | 4.86.0 | Nov 11, 2026 | sha256:137c040178257261121b2d382fe164b2322051b47c0e731bc5ac21b7891318a1 |
| Latest | 4.86.0 | Nov 11, 2026 | sha256:137c040178257261121b2d382fe164b2322051b47c0e731bc5ac21b7891318a1 |
Major changes in this release
New features, significant changes, and any actions required when upgrading.
| Type ↑ | Change ↕ |
|---|---|
| new | General availability of Retool's MCP server Retool's MCP server is now generally available on cloud and self-hosted instances. |
| new | Build resource environment switching for published apps Prompt the app building agent to use resource environments in published apps. |
| new | Custom authentication for embedded apps Business and Enterprise organizations can authenticate embedded apps with the Retool API. |
| new | Continued hardening of Retool's infrastructure A hardened code-executor image is now available for self-hosted instances. |
| new | Use external MCPs in app builder The app building agent can use tools from external MCP servers connected as resources. |
| new | Embed apps in iframes Embed apps in other apps, classic apps, and external websites using an iframe. |
| new | Azure Key Vault Secrets Manager Self-hosted organizations can store and retrieve secrets from Azure Key Vault. |
| new | Manual file management for app building Add folders and files manually from the Code tab of the app builder without prompting the agent. |
| new | Message queueing Queue up to five messages in the app builder chat while the agent is working. |
| new | Access policies for PostgreSQL resources in public beta Enterprise organizations can enforce table, column, and row-level data access policies on PostgreSQL resources. |
| new | App builder supports all resource integrations The app builder supports all of Retool's resource integrations, including native and generic integrations. |
| new | General availability of app builder Build production-ready React apps using natural language, MCP-compatible coding agents, or imported React code. |
| new | Debug console for the app builder Inspect apps, surface errors and logs, and resolve issues with the agent from the app builder's debug console. |
| new | Spend controls for AI usage Set limits on AI credit and token usage for users, groups, and models. |
| new | Service users for workflows Choose a permission group as a workflow's run identity so scheduled, webhook-triggered, and query-triggered runs use that group's access. |
| new | Private npm registries for apps Enterprise organizations can install npm packages from private registries in Retool apps. |
| new | Create PostgreSQL and REST API resources with natural language Prompt the app building agent to create resources directly from the app builder. |
| improved | Microsoft SQL integration version 3.0 restores support for array values Version 3.0 of the Microsoft SQL integration accepts array values in query parameters. |
| improved | Expanded source control managers for multi-instance releases Retool now supports more source control managers for app multi-instance releases. |
| deprecated | Conclusion of public beta for Assist Retool has concluded the public beta for Assist in the classic app builder. |
| deprecated | Deprecation of preinstalled libraries in custom authentication JavaScript steps Retool is deprecating preinstalled third-party libraries in custom authentication JavaScript steps. |
| deprecated | Deprecation of Windows Authentication for Microsoft SQL Server resources Retool is deprecating Windows Authentication for Microsoft SQL Server resources. |
| deprecated | Deprecation of the BigID resource type Retool is deprecating the BigID resource type. |
| deprecated | Microsoft SQL integration versions 1.0 and 2.0 removed Retool removed versions 1.0 and 2.0 of the Microsoft SQL integration. Resources must use version 3.0. |
| 24 changes | |
Patch release notes
Bug fixes, improvements, and changes across all patch versions in this release.
| Type ↑ | Description ↕ |
|---|---|
| 4.86.0968 changes↑ | |
| added | Added support for a common class of recursive CTEs against row-protected tables. [#81656] |
| added | Added Claude Opus 5 as an available model for Agents and BYOK AI resource queries. [#81831] |
| added | Added Gemini 3.6 Flash model to Google AI resource queries. [#81834] |
| added | Added a source control protection action to the publish modal in the new app builder. [#81869] |
| added | Added a visible keyboard focus state to the top navigation tabs. [#81888] |
| added | Added an AI token usage tab to the Usage Analytics settings page. Also enabled the in-product NPS survey by default for builders and admins. [#81889] |
| added | Added startup telemetry reporting for code executor environment variables on self-hosted instances. [#82042] |
| added | Enabled manual and agent-initiated file deletion in the new app builder by default. [#82132] |
| added | Added a safeguard to block sharing a function into a library package it directly imports. [#82162] |
| added | Added audit logging for destination overrides in OpenAPI spec fetches and authentication setup. [#82166] |
| added | Added a source control footer to the version history tab in the new app builder. [#82190] |
| added | Added tooltips to the copy, like, and dislike buttons in the new app builder's chat. [#82220] |
| added | Added a footer to the Version history panel for managing which release is pinned. [#82258] |
| added | Added Retool MCP to the official Claude plugin for Cloud and self-hosted instances. [#82259] |
| added | Added Japan region routing for the Bedrock Claude Haiku 4.5 model so ap-northeast-1 and ap-northeast-3 requests use the JP inference profile. [#82343] |
| added | Added GitLab support for detecting merged pull requests in the new app builder's Publish modal, switching the action button between Open merge request and Push changes. [#82368] |
| added | Added a queue panel to the composer in the new app builder that lets you view, edit, reorder, and clear queued prompts while the agent is running. [#82465] |
| added | Added a Beta badge to the Access tab in the resource editor for resources with data access enforcement enabled. [#82596] |
| added | Added per-model API capability configuration for custom AI provider resources. [#82703] |
| added | Added the ability to view and remove file attachments on queued prompts in the new app builder's chat panel. [#82720] |
| added | Added an edit-app footer to apps served through the iframe-embedded path in the new app builder. [#82807] |
| added | Added the ability to rename a git branch from the Version History panel in the new app builder. [#82875] |
| added | Added support for custom headers on AWS Bedrock AI provider resources. [#82955] |
| added | Added Include deleted records option to Salesforce SOQL queries. [#82988] |
| added | Added zoom and pan controls to the new app builder debug console timeline. [#83081] |
| added | Added user-toggleable data security enforcement setting for PostgreSQL resources on self-hosted deployments. [#83204] |
| added | Added the ability to delete a folder and its contents from the new app builder's editor, and fixed two bugs where a refused delete could leave files incorrectly hidden or a deleted file could reappear moments later. [#83364] |
| added | Added a warning dialog that lists which workflows will stop running before you enable data access enforcement on a resource. [#83385] |
| added | Added a dismissible banner on the Resources list page to help admins discover data access policies. [#83587] |
| added | Added a What's New card promoting data access policies to the home page. [#83589] |
| added | Added a human-in-the-loop authentication flow so the app builder agent can prompt for OAuth when an MCP resource's tools require it. [#83606] |
| added | Added Azure Cosmos DB as a supported resource in the new app builder, so agents can query and write documents and browse containers and partition keys in the schema browser. [#83663] |
| added | Added a /api/v2/usage/ai_credits public API endpoint that returns AI credit usage broken down by day, root organization, model, provider, user, and credit pool. [#83737] |
| added | Added an Always show scrollbars option to the appearance settings of the Table and legacy Table components. [#83738] |
| added | Added a distinct unrestricted access outcome to audit trail logs so organization admins can see when a query ran without data security policy restrictions applied. [#83898] |
| added | Enabled multi-instance releases by default for apps built with the new app builder. [#83941] |
| added | Added a UI to view AI credit usage from within Settings. [#83983] |
| added | Added the ability for the AI agent to delete folders in a single step, not just individual files. [#83996] |
| added | Added the branch author's name to each branch in the new app builder's Version History panel. [#84163] |
| added | Added a Build/Plan mode toggle to the app builder's agent chat and enabled the Markdown file preview view in the code editor for all users. [#84195] |
| added | Added a warning to the RetoolDB connection string modal about configuring session-level options through external clients. [#84214] |
| added | Added a read-timeout backstop for streamed query responses so a hung connector stream can no longer leave a query waiting indefinitely. [#84230] |
| added | Added a Test connection button to Notion resources. [#84241] |
| added | Added support for the Authorization Code Grant with PKCE OAuth2 flow on GraphQL resources. [#84242] |
| added | Added a banner and an Update to latest code button on automations running outdated pipeline code. [#84419] |
| added | Added Claude Fable 5.1 BYOK support for AI queries and the app builder on Anthropic and AWS Bedrock. [#84647] |
| added | Added support for using Google Cloud Datastore resources in the app builder. [#84716] |
| added | Added support for using Google Vertex AI resources in the app builder. [#84719] |
| added | Added support for using legacy OpenAPI resources in the new app builder. [#84723] |
| added | Added support for using RethinkDB resources in the app builder. [#84725] |
| added | Added support for using CouchDB resources in the app builder. [#84726] |
| added | Added support for using Amazon SNS resources in the app builder. [#84727] |
| added | Added support for using Tavily resources in the app builder. [#84769] |
| added | Added app deployment details to the public source control deployment API responses. [#84853] |
| added | Added GPT-5.4 mini, GPT-5.4 nano, and GPT-6 Astra models for AI queries. [#84855] |
| added | Added support for apps built in the new app builder to the public release manifest API. [#84938] |
| added | Added Gemini 3.8 Flash to Google Gemini and Vertex AI providers for BYOK AI queries. [#85069] |
| added | Added MCP audit log events for tool invocations, sessions, and OAuth grants to Audit Trails. [#85107] |
| added | Added the org's branded favicon to published and preview apps in the new app builder. [#85161] |
| added | Added support for apps built in the new app builder to the public source control releases API. [#85189] |
| added | Added GPT 6 Sol, GPT 6 Luna, and GPT Image 2.5 models for AI queries. [#85232] |
| added | Added a persistent Try the new app builder button to Classic apps in editor mode. [#85262] |
| added | Added keyboard shortcuts to toggle the chat and change history panels in the new app builder. [#85276] |
| added | Added Azure Key Vault as a secrets manager provider without requiring an experiment to be enabled. [#85293] |
| added | Added forwarding of the ui_locales parameter during SSO login so identity providers can show their login page in the chosen language. [#85354] |
| added | Added a toast notification when a user can't approve a function due to missing resource access. [#85415] |
| added | Added a confirmation prompt before discarding unsaved access policy changes on a resource. [#85435] |
| added | Added a screen reader announcement option to the Text component in classic apps, so its content is read aloud when it changes. [#85481] |
| added | Added OpenID Connect discovery and UserInfo support for MCP OAuth clients to enforce workspace domain restrictions. [#85548] |
| added | Added an admin-only setting, available via the UI and the public REST API's updated_app_builder_enabled field, to control which AI provider resources the new app builder can use for its own chat and agent responses. [#85553] |
| added | Added the Retool CLI in public beta, for building, managing, and publishing apps from the command line. [#85574] |
| added | Added an exclude_trashed query parameter to the public GET /api/v2/apps endpoint to omit trashed apps from results. [#85632] |
| added | Added a --gallery option to retool init and a retool gallery list command to the Retool CLI, letting a new app start from an existing App Gallery app. [#85642] |
| added | Enabled the app builder agent to repair a resource it just created when the connection test fails, instead of prompting for all values again. [#85643] |
| added | Added support for the new app builder agent to create MSSQL, Redshift, CockroachDB, AlloyDB, Denodo, and Snowflake Postgres resources. [#85660] |
| added | Added the retool status command to the Retool CLI, reporting local and server branch state, preview status, pending serverless function approvals, and resource type freshness, and added a retool pull --from option to merge a named source with authenticated Git access. The retool start command now also warns when the local checkout is behind main. [#85689] |
| added | Added Gmail, Google Drive, and Microsoft Graph as supported wrapped resources for backend functions in the new app builder. [#85737] |
| added | Added the retool classic export command to the Retool CLI, which downloads a classic app's Toolscript. [#85755] |
| added | Added Claude Opus 5.5 model for AI queries and the new app builder. [#85763] |
| added | Added a UI for configuring AI spend limits at the organization, user, and group level. [#85788] |
| added | Added conversations.inviteShared to the Slack resource, so Slack resources can invite external users to Slack Connect channels. [#85807] |
| added | Added visibility for Retool CLI pushes in the app builder chat, alongside a redesigned publish status card. [#85873] |
| added | Added support for GPT 6 Astra in the app builder with BYOK. [#85920] |
| added | Added a pending function approvals summary to the output of retool push in the Retool CLI. [#85982] |
| added | Added support for MotherDuck as a resource the app builder agent can use. [#86159] |
| added | Added support for CircleCI as a resource the app builder agent can use. [#86165] |
| added | Added support for ServiceNow as a resource the app builder agent can use. [#86166] |
| added | Added support for Cassandra as a resource the app builder agent can use. [#86167] |
| added | Added Amazon SQS as a supported resource for backend functions in the new app builder. [#86176] |
| added | Added Apache Kafka as a supported resource for backend functions in the new app builder. [#86180] |
| added | Added Elasticsearch as a supported resource for backend functions in the new app builder. [#86182] |
| added | Added paging and name filters to the Retool MCP list tools for workflows, groups, folders, and writable app folders, and added app_url to the retool_list_apps and retool_get_app tools. [#86241] |
| added | Added an Export theme option to the theme library card's menu, letting you download a theme as a JSON file. [#86269] |
| added | Added Claude Sonnet 5.5 and GPT-6.1 Sol as models for AI queries. [#86492] |
| added | Added a folder_id query parameter to GET /api/v2/workflows to list only the workflows in a folder. [#86575] |
| added | Added a logout() function and a useRetoolAppsAndFolders hook to the new app builder, so apps can sign users out and list the apps and folders the current user can see. [#86694] |
| added | Added name_contains filtering to the Groups and Folders APIs, and paging and filtering to the Workflows API. [#86749] |
| added | Added support for chrome-extension:// origins in custom Content Security Policy settings. [#86893] |
| added | Added a debug console to the new app builder editor with Errors, Logs, and Timeline tabs, plus a status bar summary of errors and warnings with a Fix with AI action. [#86915] |
| added | Added backend function output and error logs to the debug console in the new app builder. [#86933] |
| added | Added support for multi-instance releases of apps in the app builder when using GitLab for source control. [#87053] |
| added | Added a Return response as a file query option that returns REST, S3, Azure Blob, and Retool Storage responses as base64. [#87102] |
| added | Added PAGE_VIEW audit log events for published apps built with the new app builder. [#87164] |
| added | Added a warning in App Security settings when the frame-ancestors CSP directive allows any HTTPS site to embed apps. [#87229] |
| added | Added the POST /api/embed-url/external-user/revoke endpoint to end a single Retool Embed session before it expires. [#87231] |
| added | Added the retool_add_group_members and retool_remove_group_members MCP tools to manage permission group membership and pending invites from an AI client. [#87238] |
| added | Added retool_disable_user and retool_enable_user tools to the Retool MCP server. [#87244] |
| added | Added space filtering to the retool_list_audit_logs MCP tool and a retool_list_user_spaces tool to find space IDs. [#87292] |
| added | Enabled Claude Sonnet 5.5, GPT-6 Sol, and GPT-6.1 Sol as models in the app builder. [#87373] |
| added | Added Bitbucket support for multi-instance releases of app builder apps in Source Control. [#87413] |
| added | Added MCP tools to enable admins to create, rename, and delete permission groups. [#87422] |
| added | Added a channel field to audit event metadata that records whether a change came through MCP, the Retool CLI, or a personal access token. [#87431] |
| added | Added file renaming by the AI agent and manual frontend and backend file and folder creation in the app builder. [#87490] |
| added | Added the retool_reset_user_2fa, retool_set_user_attribute, and retool_delete_user_attribute tools to the Retool MCP server. [#87496] |
| added | Added MCP tools for administrators to list, create, update, and delete roles, list role grants, and list permission scopes. [#87505] |
| added | Added support for using MCP resources in backend functions in the app builder. [#87554] |
| added | Added support for sending a message history, not only a single instruction, to AI providers in the app builder. [#87581] |
| added | Added support for multi-instance releases of apps built in the app builder on Azure Repos. [#87602] |
| added | Added support for multi-instance releases of apps built in the app builder on AWS CodeCommit. [#87605] |
| added | Added role_id, user_id, and group_id filters and limit and next_token paging to GET /api/v2/role_permissions/role_grants. [#87634] |
| added | Added support for the Gemini 4 Argon model in Google Gemini and Vertex AI resources and in the app builder. [#87697] |
| added | Enabled message queuing in the app builder chat, so builders can queue up to five prompts while the agent is busy. [#87753] |
| added | Added newer Stripe API versions, including 2026-09-30.endive, to the Stripe resource API version dropdown and set 2026-09-30.endive as the default for new resources. [#87795] |
| added | Added Rename actions to the app builder code editor toolbar and file tree folders. [#87937] |
| added | Added the us and eu multiregion locations to the Google Vertex AI resource location picker. [#88100] |
| added | Added a label in the app builder editor that marks a backend file as a serverless function or a plain helper. [#88160] |
| added | Added a Beta setting to enable presigned uploads for Retool Storage. [#88175] |
| added | Added the DISABLE_RETOOL_MANAGED_AI environment variable to block AI requests that use Retool-managed credentials. [#88222] |
| added | Added support for custom model lists on AI provider resources, which restrict the models a resource can use. [#88259] |
| added | Added a warning banner on the Resources page for Microsoft SQL resources that use Windows Authentication, which is deprecated. [#88317] |
| added | Added a Resources page warning for resources whose custom authentication steps load preinstalled libraries. [#88319] |
| added | Added the retool checkout -b command to the Retool CLI to create a branch and switch to it. [#88391] |
| added | Added an informational note on legacy Loop blocks in workflows that explains how to switch to the updated Loop block. [#88460] |
| added | Added the retool_login_status MCP tool to enable clients to view the current OAuth user, organization, client, and scopes. [#88496] |
| added | Added a RESOURCE_QUERY_ACCESS_DENIED audit log event when a query run from a workflow is refused access to a resource. [#88749] |
| added | Enabled natural language resource connection in the app builder agent by default. [#88788] |
| added | Added service users to the Audit Logs API and the MCP audit tool, with a serviceUserId filter. [#88839] |
| added | Added service users to the Audit Logs page, with a filter for them. [#88840] |
| added | Added a Beta setting to enable service users for workflows. Assign a permission group as a workflow's run identity so scheduled, webhook, and query-triggered runs use that group's access instead of an admin's. Available on Business plans and above. [#88916] |
| added | Added a Beta setting in advanced settings to enable Enterprise admins to configure private npm registries for app builder apps and Retool CLI installs. [#88918] |
| added | Added support for the GPT 6.1 Terra model in OpenAI resources and AI queries. [#88924] |
| added | Added naming of the retool clone directory after the app, and cloning by app name or slug in the Retool CLI. [#89043] |
| added | Added optional secondary agent executor JWT public and encryption keys to enable key rotation without interrupting running sandboxes. [#89073] |
| added | Added an Open group settings button to the run identity access warning for admins. [#89693] |
| added | Added Custom Auth support for resources used by app builder apps, including OAuth and redirect steps. [#90364] |
| fixed | Fixed an error in the provider scope modal for AI provider resources when the user has read-only access. [#79775] |
| fixed | Fixed migrated Retool AI queries persisting unused image and multimodal model fields onto provider resources. [#80919] |
| fixed | Fixed the new app builder's package.json write validator to report the exact expected version when it rejects a system-dependency change, instead of an opaque message. [#81396] |
| fixed | Fixed the Ask User prompt in the new app builder to display as a card above the composer input, with support for multi-step, multi-select, and abortable responses. [#81448] |
| fixed | Fixed a Safari navigation error in the new app builder by replacing the browser history router with an in-memory router, preventing security errors on every in-app navigation inside self-hosted app iframes. [#81586] |
| fixed | Fixed Retool Database permissions being granted to all users to match behavior with Retool Storage, Retool Email, and Retool AI. [#81719] |
| fixed | Fixed externally-synced branches in the new app builder getting an auto-generated description instead of keeping their original branch name. [#81736] |
| fixed | Fixed form field values being cleared when initialData is null, without blocking the Default value property. [#81765] |
| fixed | Fixed the legacy serverless function runner failing to detect missing per-user authentication for connectors such as Google Sheets. [#81776] |
| fixed | Fixed the new app builder and Services Debugging page incorrectly reporting Temporal as missing on self-hosted instances using Retool-managed Temporal. [#81811] |
| fixed | Fixed a performance issue that slowed backend artifact publishing in the new app builder. [#81816] |
| fixed | Fixed several reliability issues in the Admin Onboarding Hub. Admins are now correctly routed to the normal apps view instead of the onboarding experience, the Set up your spaces step now completes when spaces already exist, and workspace join request approvals and rejections now generate dedicated audit log events. [#81822] |
| fixed | Fixed embedded apps hanging on an indefinite loading spinner instead of surfacing boot failures. [#81866] |
| fixed | Fixed branch names in the new app builder being overwritten when a new chat thread started on an already-named branch. [#81882] |
| fixed | Fixed the invite signup flow so admins can disable role and skill level questions for a single org instead of only globally. [#81934] |
| fixed | Fixed MCP thread tools for the new app builder to return distinct thread and branch identifiers instead of requiring clients to infer them from the mutable git branch ref name. [#81946] |
| fixed | Fixed two browser tabs on the same branch in the new app builder incorrectly sharing one sandbox, which could cause a new tab to adopt another tab's in-progress sandbox. [#81961] |
| fixed | Fixed app preview links to resolve using the branch identifier instead of the thread identifier. [#81975] |
| fixed | Fixed the app builder editor to report and roll back file deletions refused due to insufficient resource access, instead of silently removing the file until the next page refresh. [#81994] |
| fixed | Fixed library package publishing to correctly resolve the org billing plan, mirroring the concurrency rate-limit and kill-switch handling already used for app publishing. [#81999] |
| fixed | Fixed the AI agent to check image dimensions before reading an uploaded image, avoiding an API error when an image exceeds the model's readable dimension limit. [#82003] |
| fixed | Fixed in-flight HTTP requests being dropped during agent executor proxy shutdown instead of draining first. [#82013] |
| fixed | Fixed app-level theme color overrides being silently overridden by the org theme in the new app builder sandbox. [#82017] |
| fixed | Fixed the app builder help menu link to point to the correct documentation page. [#82022] |
| fixed | Fixed adaptive thinking not being enabled for claude-sonnet-5 requests in the new app builder. [#82038] |
| fixed | Fixed the new app builder preview getting stuck after fixing a broken import caused by a deleted file. [#82040] |
| fixed | Fixed preview builds failing for apps with multiple chat threads on different branches. [#82044] |
| fixed | Fixed a race condition that could corrupt publish state when publishing the same app branch multiple times concurrently. [#82045] |
| fixed | Fixed detached workflow resource queries continuing to run after the workflow run was stopped or canceled. [#82065] |
| fixed | Fixed app loading from source control failing when a repository repack job was in progress, by retrying once. [#82068] |
| fixed | Fixed the policy status badge in data access policies to reflect pending enforcement changes instead of only the policy's own saved state. [#82071] |
| fixed | Fixed generated apps in the new app builder losing organization theme CSS after a warm sandbox restore. [#82076] |
| fixed | Fixed the new app builder's dev server and publish build silently ignoring settings in a committed Vite config file, which could produce a published bundle with no entry point. [#82078] |
| fixed | Fixed a headless workflow run classification bug where the headless flag was dropped when the resolved admin user was passed back into the run context. [#82091] |
| fixed | Fixed the request access form on the login page to clear after a successful submission and prevent duplicate submissions. [#82092] |
| fixed | Fixed serverless function signatures that declare no params being rejected instead of generating a hook. [#82114] |
| fixed | Fixed form fields in classic apps incorrectly retaining a previous record's value when navigating between records. [#82127] |
| fixed | Fixed publishing in the new app builder becoming permanently blocked with a thread-already-published error after new commits landed. [#82142] |
| fixed | Fixed a timeout in the groups API endpoint for organizations with many users. [#82173] |
| fixed | Fixed authentication errors in the editor preview by partitioning the sandbox iframe auth cookie. [#82175] |
| fixed | Fixed a regression that could incorrectly deny users access to resources and queries. [#82184] |
| fixed | Fixed a bug where sandbox hydration could delete resource type files or crash setup. [#82188] |
| fixed | Fixed an open file tab remaining after its file was deleted in the new app builder. [#82203] |
| fixed | Fixed ClickHouse queries to bind parameters as prepared statements instead of inlining them. [#82204] |
| fixed | Fixed oversized center-mode images in Retool Mobile on iOS's new architecture. [#82240] |
| fixed | Fixed non-idempotent database migrations that could break replaying an upgrade to Retool 4.0. [#82251] |
| fixed | Surfaced grid backend errors in the table creation and edit paths in the UI. [#82254] |
| fixed | Fixed the app builder AI agent to share chat sandboxes per branch and user, keeping tabs in sync when switching threads. [#82267] |
| fixed | Fixed a race condition in the app builder AI agent that could create duplicate chat threads on load. [#82268] |
| fixed | Fixed stepped spinner icons animating out of alignment with their 8-slot design. [#82291] |
| fixed | Fixed the Publish dialog showing a stale app protection status after another user changed it while the dialog was open. [#82306] |
| fixed | Fixed offline Retool Storage uploads failing after re-authentication by refreshing session credentials and enforcing per-user ownership on queued uploads. [#82312] |
| fixed | Fixed the app preview in the new app builder getting stuck on a loading screen during live edits by upgrading the underlying dev server and its hot-reload handling. [#82318] |
| fixed | Fixed the Markdown component dropping the last word of a line on Android due to a text measurement mismatch. [#82334] |
| fixed | Fixed the Layout Compiler resizing a component's parent grid unexpectedly when hovering over nested droppables during a resize. [#82350] |
| fixed | Fixed a bug that prevented Retool from creating agent branches on GitLab, which caused app publishing to fail. [#82354] |
| fixed | Fixed a delay of about 25 seconds in JavaScript code execution caused by the sandbox process not exiting after writing its result. [#82370] |
| fixed | Fixed an internal error that appeared in Assist chat when a model was not mapped in the legacy billing configuration. [#82381] |
| fixed | Fixed the data access enforcement engine failing to load on self-hosted instances due to a missing libpg-query runtime dependency. [#82388] |
| fixed | Fixed UI text in the app builder that was getting cut off. [#82389] |
| fixed | Fixed a bug where a failure in deprecated Assist telemetry could skip AI credit billing and leak an error into the chat stream. [#82392] |
| fixed | Fixed generated TypeScript resource type declarations for DynamoDB and Google Sheets so backend code type-checking catches invalid usage instead of silently passing. [#82394] |
| fixed | Fixed AI agent thread snapshots failing to restore in the new app builder after switching threads. [#82400] |
| fixed | Fixed a regression that blocked the Opus model for managed keys in the new app builder. [#82448] |
| fixed | Fixed an issue where preview builds in the new app builder could fail to upload because of incorrect branch identification. [#82450] |
| fixed | Fixed an issue where users without edit permission on a resource could still see an active Delete option in the resource menu. [#82452] |
| fixed | Fixed a confusing error message shown when trying to protect or unprotect an app that was already in the target protection state. [#82463] |
| fixed | Fixed a build issue that prevented Python custom libraries requiring native extensions, such as psycopg2, from building in the self-hosted Code Executor image. [#82464] |
| fixed | Fixed leaked connections caused by concurrent Temporal client creation. [#82473] |
| fixed | Fixed the Publish button staying stuck in a saving state after switching threads in the new app builder. [#82511] |
| fixed | Fixed native Python library builds, such as psycopg2 and cryptography, in the self-hosted Code Executor image. [#82519] |
| fixed | Fixed a missing drag preview when dragging a component into a ListView, and fixed resized component previews overflowing their parent width. [#82527] |
| fixed | Fixed a bug where submitting a chat message before threads finished loading could send it to the wrong AI resource. [#82540] |
| fixed | Fixed personal folder permission checks that could throw an error and return HTTP 422 instead of resolving ownership. [#82566] |
| fixed | Fixed a bug that blocked users with write access from loading an OpenAPI spec in the guided REST query editor. [#82575] |
| fixed | Fixed app identifier collisions when syncing apps built with the new app builder across instances via source control. [#82581] |
| fixed | Fixed the new app builder writing the wrong source control identifier to package.json on push, causing naming conflicts on sync. [#82589] |
| fixed | Fixed empty subfolders that had access only through an ancestor folder grant disappearing from the folder list and search. [#82595] |
| fixed | Fixed an intermittent bug that could return an empty type stub file when generating typesheds for the googletrans library in backend functions. [#82611] |
| fixed | Fixed an issue where app builder agent requests using a model outside the built-in set could be silently dropped instead of completing. [#82656] |
| fixed | Fixed a workflow error message that exposed internal security implementation details to users. [#82673] |
| fixed | Fixed a race condition on Android that could cause Google Sheets streaming queries to return unusable raw data instead of transformed rows. [#82679] |
| fixed | Fixed a bug where publishing a new app builder app with no publishable backend files failed to write a publish manifest, incorrectly prompting some organizations to republish for a custom domain. [#82682] |
| fixed | Fixed the new app builder's AI agent sometimes hardcoding colors or giving up instead of applying app-level theme overrides, by pointing it at appTheme.css. [#82694] |
| fixed | Fixed the resource access policy editor so that refreshing the page no longer discards an in-progress draft, and added a confirmation prompt before navigating away with unsaved changes. [#82697] |
| fixed | Fixed the app builder's save-error dialog so long error text scrolls instead of pushing action buttons off screen. [#82745] |
| fixed | Fixed branch description auto-naming so it keeps updating on every message until a non-default name is generated. [#82748] |
| fixed | Fixed the settings sidebar so the Advanced Settings link is no longer obscured by the browser tooltip at the scroll edge. [#82749] |
| fixed | Fixed the source control test_deploy endpoint to validate that commit_sha is non-empty instead of returning a generic server error. [#82763] |
| fixed | Corrected outdated wording in the sandbox save-error and custom domain messages about starting new threads and republishing. [#82764] |
| fixed | Fixed the Move option being enabled for protected app builder apps in the multi-select menu, which caused errors when attempting to move them. [#82773] |
| fixed | Fixed classic app Stack components resizing incorrectly in Grid containers. [#82790] |
| fixed | Fixed preview link generation to stay hidden for apps with no commits, since there is nothing to preview. [#82792] |
| fixed | Fixed permission dropdown submitting access writes when the selected level was unchanged. [#82808] |
| fixed | Fixed package.json metadata not updating when duplicating or syncing new app builder apps. [#82809] |
| fixed | Fixed a canvas crash caused by plugin models stored as plain objects instead of Immutable maps in the app model. [#82844] |
| fixed | Replaced the auto-dismissing CSP update notification in the app builder preview with a persistent banner that stays until the preview is reloaded or the banner is dismissed. [#82852] |
| fixed | Fixed missing error feedback when resource creation is blocked due to insufficient permissions. [#82864] |
| fixed | Fixed backend save errors in the new app builder being silently ignored instead of surfaced to the user. [#82877] |
| fixed | Fixed the sandbox launcher so it no longer silently discards sandbox stderr output during restore. [#82878] |
| fixed | Fixed gRPC resources with no authentication causing 500 errors in the Public API v2 /resource_configurations endpoint. [#82884] |
| fixed | Fixed the missing AI credits pricing alert to report the actual model id instead of a generic message. [#82885] |
| fixed | Fixed the app builder to capture a thread snapshot after the sandbox resets following a publish. [#82887] |
| fixed | Fixed Bitbucket source control sync deleting files beyond the first page of paginated results. [#82899] |
| fixed | Fixed the workflow code executor bundle to resolve compiled JavaScript files at runtime. [#82933] |
| fixed | Fixed the Query Library to retain the in-progress query body when switching between resources of the same type. [#82936] |
| fixed | Fixed self-hosted Helm deployments with a separate git-server pod so the backend correctly proxies git v2 requests using the RR_GIT_SERVER_HOST setting. [#82965] |
| fixed | Fixed automatic preview reloads failing on some self-hosted deployments in the new app builder. [#82999] |
| fixed | Fixed Kubernetes client-node and watcher handling to correctly process pod status changes. [#83000] |
| fixed | Fixed source control sync failing after protecting, unprotecting, and then reprotecting an app builder app. [#83016] |
| fixed | Fixed white-label mobile app archive generation failing. [#83030] |
| fixed | Fixed MCP backend calls resolving to the admin organization instead of the correct Space. [#83037] |
| fixed | Fixed the group-by-type sort switch incorrectly appearing in the new app builder debug console. [#83063] |
| fixed | Fixed superseded errors not clearing from the debug console Errors tab in the new app builder. [#83064] |
| fixed | Fixed row selection in the new app builder debug console when clicking inside an expanded log detail. [#83065] |
| fixed | Fixed OAuth token exchange, refresh, and authentication checks to ignore a resource's configured SSL and mTLS client certificates for any host other than the base URL. [#83066] |
| fixed | Fixed debug console logs in the new app builder keying to thread instead of branch. [#83074] |
| fixed | Fixed timeline hover card positioning in the new app builder debug console. [#83080] |
| fixed | Fixed a bug where dropping a List View component inside another List View could throw an error and fail to render. [#83123] |
| fixed | Fixed new agent conversation threads that could be created without a linked app repository, which caused the sandbox to fail to start with a server error. [#83132] |
| fixed | Fixed publish status checks blocking app publishing when continuing from a previous thread in the new app builder. [#83133] |
| fixed | Fixed app builder editing sessions failing with an authentication error after being open for more than one hour. [#83148] |
| fixed | Fixed low-contrast dropdown text in dark mode by deriving popover and accent text color from WCAG contrast instead of a fixed luminance cutoff. [#83166] |
| fixed | Fixed AI provider secret references not resolving correctly in resource queries. [#83177] |
| fixed | Fixed the Check out branch control to stay disabled while the agent is working, preventing a branch switch mid-turn. [#83197] |
| fixed | Fixed uploaded chat attachments to be deleted from the sandbox when removed before the prompt runs. [#83219] |
| fixed | Fixed Toolbox Next styling not applying to portaled modals in the new app builder. [#83222] |
| fixed | Fixed the self-hosted bundle including test files that broke imports in the Retool CLI. [#83226] |
| fixed | Fixed JavaScript queries and Code Executor appearing unreachable on IPv6-primary networks. [#83228] |
| fixed | Fixed branch tip not being recorded as parent of publish commits in the new app builder. [#83247] |
| fixed | Fixed recurring header display issue in Assist. [#83260] |
| fixed | Fixed MySQL streaming queries stalling due to field injector queue mode mismatch. [#83265] |
| fixed | Fixed Table component cells breaking onto separate rows in Retool Mobile on native iOS. [#83273] |
| fixed | Fixed PostgreSQL streaming feature flag not being toggleable in resource settings. [#83288] |
| fixed | Fixed an issue where embedded apps could get stuck on the loading spinner and never finish loading. [#83290] |
| fixed | Fixed AI prompt box on homepage not appearing for enterprise admins. [#83307] |
| fixed | Fixed deprecated connector version warnings appearing for demo resources. [#83371] |
| fixed | Fixed the mobile app's DatePicker component clipping the last character of the selected date on Android. [#83380] |
| fixed | Fixed published Retool React apps sometimes resolving to the wrong resource environment during the OAuth connect flow, which could cause an Invalid oauth2_auth_url error. [#83400] |
| fixed | Fixed GitHub resource calls failing from generated OpenAPI clients in the new app builder. [#83407] |
| fixed | Fixed a race condition in the new app builder where a push under a just-renamed branch name could create a duplicate branch instead of updating the renamed one. [#83476] |
| fixed | Fixed low AI credits email notifications so an org receives at most one per billing period instead of one after every credit top-up. [#83484] |
| fixed | Fixed the new app builder's resource queries to pass through SSO tokens, so REST resources that rely on %USER_OAUTH2_ACCESS_TOKEN% no longer fail with a 401. [#83485] |
| fixed | Fixed the release manifest pull request flow getting stuck in a loading state on source control providers that don't support pull request status polling, such as Azure DevOps, and added a fallback to view the pull request directly. [#83493] |
| fixed | Fixed OpenAPI server variables to accept template strings and dynamic values such as config variables and current_user references. [#83515] |
| fixed | Fixed the AI agent's theme-switching instructions so it stops trying to read a nonexistent /frontend/orgTheme.css file. [#83516] |
| fixed | Fixed headless workflow runs, including child workflow runs and re-minted sandbox tokens, losing the signal that lets data access policies block queries against protected resources. [#83523] |
| fixed | Fixed the app builder to fall back to a default value instead of showing an error when an agent's tool description omits a required field, and corrected the edit label shown for plan-only changes. [#83529] |
| fixed | Fixed Action Center pagination so requesting the next page returns only that page instead of the rest of the list. [#83537] |
| fixed | Fixed the app builder AI agent to persist prompt context between turns so its prompt cache is reused instead of missed on every turn. [#83551] |
| fixed | Fixed the bundled AI model registry so google/gemini-3.6-flash correctly exposes its reasoning effort levels and token budgets. [#83571] |
| fixed | Fixed MCP OAuth discovery URLs to stay on the requested host instead of pointing at an internal address. [#83574] |
| fixed | Fixed protected app preview links not showing a stale warning after new sandbox edits, and added a syncing state when rebuilding a stale preview from the version history panel. [#83597] |
| fixed | Fixed transient connection errors during source control sync with Azure Repos, adding automatic retries instead of failing the sync outright. [#83622] |
| fixed | Fixed new dependencies of baseline system packages being blocked by the package age gate, which had been causing the app builder sandbox to fail to start. [#83624] |
| fixed | Fixed queries against Jira and other OpenAPI resources that omit a server URL to use the resource's configured server instead of failing. [#83645] |
| fixed | Fixed the native dropdown arrow rendering off-theme and pinned too far to the right on <select> controls in the new app builder. [#83650] |
| fixed | Fixed source control protection status not being fully removed when renamed apps with naming conflicts are unprotected. [#83660] |
| fixed | Fixed spec-backed REST API queries against OpenAPI 3.0 specs that declare relative server URLs. [#83675] |
| fixed | Fixed source control deployment failing when duplicate app UUIDs exist in the external repository. [#83685] |
| fixed | Fixed source control deployment creating duplicate release manifests when the manifest fetch fails. [#83733] |
| fixed | Fixed source control content fetching to return empty lists instead of errors for missing paths in Bitbucket, Azure Repos, and CodeCommit. [#83743] |
| fixed | Fixed an issue where renaming a branch during a source control sync could cause the sync to be silently skipped instead of retried under the new name. [#83761] |
| fixed | Fixed an issue where unrecognized or live-only AI models could run in the app builder agent on a managed key that should have been blocked for the organization's plan. [#83766] |
| fixed | Fixed long-running JavaScript code executions being killed by a deployment restart before they could finish within the expected 5 minute window. [#83807] |
| fixed | Fixed the new app builder's chat threads to tolerate a mismatch between the live AI model registry and the backend's bundled snapshot, so thread creation and model selection no longer break when a model exists on only one side. [#83815] |
| fixed | Fixed the integrate changes banner staying visible in protected apps after merging in the latest changes, and fixed useIntegrateChanges sometimes choosing the wrong sync method. [#83828] |
| fixed | Fixed a workflow error where Python blocks calling a workflow function failed with a NameError. [#83830] |
| fixed | Fixed a bug where stopping an agent turn immediately after sending a message could fail to cancel it, leaving the agent running while the UI showed it as stopped. [#83847] |
| fixed | Fixed workflow triggers failing with a path not allowed error when run, queried for schema, or checked for status from a sandboxed workflow. [#83918] |
| fixed | Fixed the app library breadcrumb to always show the current folder as a non-clickable label, so folders with duplicate names in a nested path are distinguishable. [#83926] |
| fixed | Fixed the Fix with AI button remaining enabled after exhausting AI credits. [#83956] |
| fixed | Fixed a bug where POST /api/sendVerificationEmail returned an HTTP 500 error instead of an HTTP 400 error when no firstName was available. [#83971] |
| fixed | Fixed MCP API calls losing the forwarded Space host when RETOOL_BACKEND_URL is configured, which could reject valid Space requests with an unauthorized_domain error. [#83980] |
| fixed | Fixed the publish button in the new app builder to stay disabled for protected apps when a new branch has no unpublished changes. [#83987] |
| fixed | Fixed POST /api/folders/trash, POST /api/folders/:folderId/contents, and POST /api/folders/trash/bulkDelete returning a 500 error instead of a 422 error when the request body was missing or had invalid folderIds or pageIds. [#83995] |
| fixed | Fixed POST and DELETE /api/pages/:pageId/favorite returning a 500 error instead of a 422 error for a non-integer pageId. [#84002] |
| fixed | Fixed PATCH /api/scim/v2/Groups/:groupId returning a 500 error instead of skipping a user sid that belongs to a different organization. [#84013] |
| fixed | Fixed an unclear error when renaming an app while a previous rename was still syncing to source control; the error now names the app that could not be found. [#84019] |
| fixed | Fixed AI usage tracking in the new app builder to report OpenAI cache-write tokens instead of always recording zero, correcting a cost undercount. [#84025] |
| fixed | Fixed ResourceDao.getByNames so it always scopes results to the requesting organization, preventing a code path from returning another organization's resources. [#84030] |
| fixed | Fixed the /api/checkReadiness endpoint to return a 503 status code instead of 500 when the instance is not ready. [#84031] |
| fixed | Fixed an issue where switching branches in the new app builder while loading older working-branch commits could show a disconnect error. [#84050] |
| fixed | Excluded users in an org's External Users group from the in-product NPS survey. [#84064] |
| fixed | Fixed an issue where agent sessions could get stuck reconnecting to their sandbox and never finish loading. [#84077] |
| fixed | Fixed Permissions v1 so one group's environment-level resource grant no longer overrides another group's grant. [#84087] |
| fixed | Fixed a Retool React agent session that could hang instead of recovering after repeated sandbox authorization errors. [#84092] |
| fixed | Fixed a console error that could appear when a Retool React app's sandbox was not yet ready to report remote ref status. [#84114] |
| fixed | Fixed stale SSO OAuth2 tokens on REST queries using %USER_OAUTH2_ACCESS_TOKEN% or %USER_OAUTH2_ID_TOKEN%. [#84138] |
| fixed | Fixed the code editor not reflecting backend function changes after a git merge or pull, and fixed folder deletions being reported as failed even when most files were removed. [#84148] |
| fixed | Fixed the new app builder's third-party license check to accept license names written in prose form. [#84215] |
| fixed | Fixed a resource schema cache issue that could return another user's schema when a resource used dynamic templating. [#84216] |
| fixed | Fixed a bug where a malformed screen ID in a role-grant API request returned a 500 error instead of a 404. [#84218] |
| fixed | Fixed a delay before a queued message appeared in the new app builder's chat when starting a new project. [#84222] |
| fixed | Fixed a 500 error that could occur when opening a public app. [#84227] |
| fixed | Fixed several database connector streaming paths that had no maximum response size enforcement. [#84231] |
| fixed | Fixed FileInput, FileDropzone, and FileButton Change events reading stale file values. [#84233] |
| fixed | Fixed duplicate role-grant requests returning a 400 validation error instead of a 409 conflict with a clear message. [#84238] |
| fixed | Fixed the new app builder's preview and publish jobs being keyed on a legacy thread identifier instead of the app's branch, which could misroute preview builds. [#84264] |
| fixed | Fixed links and redirects in the new app builder failing to open in the top browser frame on self-hosted and custom domain deployments. [#84265] |
| fixed | Fixed branch renaming in the new app builder to fall back to the server when the sandbox is disconnected or the rename times out, instead of failing outright. [#84273] |
| fixed | Fixed the in-app support breakage report form pointing to an outdated URL. [#84295] |
| fixed | Fixed JSON user attribute values overlapping adjacent rows in Settings and displaying as [object Object] in a user's attribute assignments. [#84303] |
| fixed | Fixed a server error when running workflow REST API query blocks on resources that require a custom-auth login. [#84327] |
| fixed | Fixed the new app builder's new-file name-collision check to compare names case-insensitively, so two backend files or folders differing only in case can no longer be created side by side. [#84335] |
| fixed | Fixed workflow Python blocks failing outright instead of retrying when Code Executor returned a capacity error. [#84352] |
| fixed | Fixed a multi-select anchor becoming misaligned with its components until the page was refreshed. [#84360] |
| fixed | Fixed the v3 MSSQL connector to accept array query parameters again by restoring array-to-string coercion, and improved the error message when an object is passed instead. [#84379] |
| fixed | Fixed the new app builder's chat composer to show the correct height and placeholder while it loads, preventing content from jumping when the composer appears. [#84388] |
| fixed | Fixed permission errors on lockbox-protected endpoints returning 500 instead of 400 or 404. [#84389] |
| fixed | Fixed MCP dynamic client registration rejecting VS Code and other clients that request the device code grant. [#84393] |
| fixed | Fixed chat file uploads and downloads in the new app builder failing after a sandbox reconnect, by refreshing the upload access token alongside the sandbox token. [#84397] |
| fixed | Fixed full source-control deploys writing an empty publish commit and advancing main for apps in the new app builder whose files had not changed, which needlessly staled every active agent thread for that app. [#84413] |
| fixed | Fixed buffered integration errors not surfacing on queries that stream results. [#84441] |
| fixed | Fixed folder id requests with an invalid id returning 500 instead of 422. [#84445] |
| fixed | Fixed page and workflow move requests with invalid bodies returning 500 instead of 422. [#84446] |
| fixed | Fixed folder favorite requests with an invalid folder id returning 500 instead of 422. [#84447] |
| fixed | Fixed keystroke lag in the function playground when a large tabular response was displayed. [#84468] |
| fixed | Fixed encrypted media playback being blocked in apps built with the new app builder served in an iframe. [#84492] |
| fixed | Fixed the space switcher not showing for non-admin users who belong to multiple spaces. [#84519] |
| fixed | Fixed protected app previews getting stuck on Rebuilding after creating or rebuilding one. [#84533] |
| fixed | Fixed permission read paths returning a server error instead of skipping unresolvable role grants. [#84585] |
| fixed | Fixed tall dialogs in apps built with the new app builder scrolling the whole modal instead of just its body. [#84590] |
| fixed | Fixed missing per-iteration results in workflow run logs for loop blocks using object storage. [#84592] |
| fixed | Fixed folder permission removal deleting indirect grants inherited from a parent folder. [#84605] |
| fixed | Fixed the new app builder discarding a Select-to-Edit draft after an accidental dismissal. [#84607] |
| fixed | Fixed MCP API requests losing Space routing when connecting through the configured internal transport. [#84628] |
| fixed | Fixed multipage main frame and list-instance card layout issues with the Layout Compiler. [#84744] |
| fixed | Fixed an issue where the new app builder may fail if Azure Repos returns a missing branch error when used with source control. [#84764] |
| fixed | Fixed threads getting stuck on a deprecated or plan-blocked model pin during compaction and on load. [#84789] |
| fixed | Returned a 422 instead of a 500 error for an invalid folder ID in workflow folder requests. [#84805] |
| fixed | Fixed a blank canvas when navigating between apps with the Layout Compiler enabled. [#84806] |
| fixed | Fixed unwanted spacing gaps below auto-height components in the Layout Compiler. [#84828] |
| fixed | Fixed a server error when running a serverless function with multiple resources. [#84834] |
| fixed | Fixed sandbox credentials expiring before refresh on agent sessions longer than 2 hours. [#84854] |
| fixed | Fixed backend function uploads exceeding the size limit silently returning a generic error instead of a clear message. [#84873] |
| fixed | Fixed a missing published-app blob on Azure storage returning a server error instead of a not-found response. [#84932] |
| fixed | Fixed agents triggered by a workflow incorrectly grouping with unrelated subagent chains on the Agents monitoring page. [#84967] |
| fixed | Fixed MCP direct-to-sandbox file uploads failing because clients were given an unreachable internal address. [#84986] |
| fixed | Fixed an MCP client with a stale session ID getting stuck instead of automatically re-initializing. [#84987] |
| fixed | Fixed the live model registry refresh task not running in self-hosted worker processes, leaving the registry stale. [#84991] |
| fixed | Fixed Azure Key Vault secret names starting with a digit being rejected even though Azure allows them. [#85008] |
| fixed | Fixed release artifact creation failing on Azure DevOps repositories configured with basic authentication. [#85013] |
| fixed | Fixed the ability to enable auto-approve without access to all resources used by an app. [#85064] |
| fixed | Fixed the View in [provider] source control link for apps in the new app builder pointing to the wrong directory. [#85102] |
| fixed | Fixed Postgres queries with duplicate column names returning null instead of the last non-null value. [#85110] |
| fixed | Disallowed editing apps in the new app builder when an org has version control locked. [#85114] |
| fixed | Fixed publishing a new app builder app failing when its bundle included a file with a space in its name. [#85117] |
| fixed | Fixed OAuth login redirects for published apps dropping query parameters from the original URL. [#85119] |
| fixed | Fixed MCP tool calls that could succeed in the editor but fail after publish for dynamic tool references. [#85132] |
| fixed | Fixed the new app builder's preview banner's Updated time freezing instead of reflecting the latest build. [#85143] |
| fixed | Hid the View button for protected apps in the new app builder instead of showing a broken branch-switching menu. [#85147] |
| fixed | Fixed app builder Preview failing with a missing export error after a Retool CLI push added a backend function. [#85151] |
| fixed | Fixed components inside a newly created Form not being draggable or resizable until reload. [#85191] |
| fixed | Fixed disabled and certificate-backed managed secrets appearing in Azure Key Vault resource listings. [#85194] |
| fixed | Fixed a deadlock that could cause logout and password reset requests to fail. [#85202] |
| fixed | Fixed a 500 error when resetting a password if the confirmation email failed to send. [#85205] |
| fixed | Fixed an intermittent invalid authentication callback error when logging into an embedded app. [#85213] |
| fixed | Fixed browser back button navigation and removed a stray query parameter for published apps in iframes. [#85228] |
| fixed | Removed the preview and markdown toggle for read-only markdown files in the new app builder. [#85242] |
| fixed | Fixed a 500 error when buying AI credits without a payment method on file. [#85243] |
| fixed | Fixed a published app's Edit app link leaving the custom domain and forcing a re-login in the new app builder. [#85259] |
| fixed | Fixed classic apps incorrectly opening in the new app builder and failing to load. [#85270] |
| fixed | Fixed orphaned resource type definition files left behind after a CLI pull removed or renamed resources. [#85288] |
| fixed | Fixed the Data tab so renamed resources are correctly attributed to their new name. [#85297] |
| fixed | Fixed npm packages with a SEE LICENSE IN license alternative being incorrectly blocked from installation in the new app builder. [#85304] |
| fixed | Removed a shared rate limit on MCP token introspection that could reject healthy traffic. [#85307] |
| fixed | Fixed editor-tier users losing own-level resource access during the self-hosted object permissions V1 to V2 migration. [#85319] |
| fixed | Fixed a crash in the Workflows editor caused by a failed lazy-loaded module retry. [#85324] |
| fixed | Fixed OAuth requests for PKCE and Salesforce connections that broke when the scope parameter was empty. [#85335] |
| fixed | Fixed tooltip placement for header icons in the new app builder. [#85368] |
| fixed | Fixed streaming REST API queries dropping the request body from query metadata. [#85404] |
| fixed | Fixed a bug where publishing an app could remain locked for up to 40 minutes after a previous publish finished. [#85409] |
| fixed | Fixed the app builder chat losing track of a tagged resource after it was renamed. [#85432] |
| fixed | Fixed publishing apps for editors without direct access to all resources or workflows used in approved functions. [#85437] |
| fixed | Fixed workflow blocks reporting success when a piped query actually failed, so retry policies now trigger correctly. [#85438] |
| fixed | Fixed OAuth 2.0 authentication for REST API resources with no OAUTH2_TOKEN placeholder in the request, which previously sent every request without the access token. [#85506] |
| fixed | Fixed Business plan customers getting a 403 error when creating an object role with Apply Universally enabled. [#85512] |
| fixed | Fixed the MCP server incorrectly allowing classic apps to be used with app builder tools instead of rejecting them with guidance to convert first. [#85520] |
| fixed | Fixed embedding for apps in the new app builder so they no longer require a custom domain. [#85522] |
| fixed | Fixed AI credit usage timestamps and enforcement to consistently use a single timezone, preventing confusion near daily reset boundaries. [#85524] |
| fixed | Fixed the app builder agent's chat composer ignoring messages sent while a resource collection form was open. [#85562] |
| fixed | Fixed source control dropping default AI model selections from apps and Query Library entries. [#85563] |
| fixed | Fixed presigned URLs from S3, GCS, and Azure Blob storage resources being corrupted by the secret sanitizer. [#85646] |
| fixed | Fixed false-positive scope errors in the classic app editor for multipage apps when a page-scoped query's template string field referenced a component on the same page. [#85649] |
| fixed | Fixed MCP tool discovery to reflect the organization's actual plan entitlements. [#85674] |
| fixed | Fixed an issue in the new app builder where agent edits triggered a full page reload instead of applying instantly in the preview. [#85700] |
| fixed | Removed the 20-page cap on the app builder's Classic-to-new-app-builder migration. [#85706] |
| fixed | Fixed the environment selector in the new app builder showing a stale environment after switching, which could leave preview data out of sync with the environment actually in use. [#85711] |
| fixed | Fixed backend functions with type-only imports being incorrectly flagged as needing approval. [#85728] |
| fixed | Fixed the Retool CLI's retool clone command ignoring the directory argument. [#85735] |
| fixed | Fixed DELETE /appTheme/:id returning 500 instead of 400 for a non-numeric theme ID. [#85757] |
| fixed | Fixed the protected app Open pull request button staying enabled when there were no changes to publish. [#85761] |
| fixed | Fixed the Retool CLI recommending retool init --force as a retry step in cases where that command could not succeed. [#85765] |
| fixed | Fixed the Function Playground results pane in the new app builder showing misleading output, such as scalars rendered as one-row tables and function parameters mixed into results; it now shows the function's actual return value and includes a copy-to-clipboard button. [#85810] |
| fixed | Fixed uploaded SSL/TLS certificates reverting to No file selected on the resource form. [#85850] |
| fixed | Fixed workflow libraries reappearing after deletion and remaining installed in runs. [#85851] |
| fixed | Fixed a class of bugs where manual file edits in the app builder could be silently dropped without notifying the user. [#85881] |
| fixed | Fixed deprecated models continuing to appear in the app builder's model pickers, new-thread defaults, and workspace default settings. [#85925] |
| fixed | Fixed existing Team-plan environments becoming inaccessible or incorrectly plan-locked. [#85932] |
| fixed | Fixed components rendering in the wrong position below a fixed-height control, such as a Select listbox, in classic apps using the Layout Compiler. [#85950] |
| fixed | Fixed the republish call to action incorrectly appearing for self-hosted organizations. [#85971] |
| fixed | Fixed an error analyzing imported apps that contained backslashes in file names. [#85987] |
| fixed | Fixed AI token usage totals undercounting cached Anthropic calls and always reporting zero for streamed Bedrock text actions. [#85994] |
| fixed | Fixed retool status in the Retool CLI failing with a 401 Unauthorized error. [#85997] |
| fixed | Fixed OAuth token request headers sending literal secret and config variable templates instead of resolved values. [#86009] |
| fixed | Fixed source control provider configuration losing existing settings, such as repository version and subdirectory, on instance restart or upgrade when configured through environment variables. [#86017] |
| fixed | Fixed REST resource queries returning a 502 error when response metadata exceeded the ingress buffer size. [#86027] |
| fixed | Fixed app builder chat threads on a Retool model being switchable to a different provider mid-thread, and fixed Claude receiving unverifiable reasoning content from earlier model responses. [#86088] |
| fixed | Fixed the function approval button not appearing for mutative functions that referenced a resource by its deprecated or renamed name. [#86098] |
| fixed | Fixed the publish modal briefly showing an incorrect version number before release information finished loading. [#86099] |
| fixed | Fixed the app builder chat allowing use when no AI provider is configured, now blocking usage and showing an error banner directing users to contact their admin, with a fallback to Retool models when available. [#86104] |
| fixed | Fixed organizations with no resolvable plan tier being excluded from feature rollouts once a tier-based rollout reached one hundred percent. [#86117] |
| fixed | Fixed fuzzy search in Select components not matching option labels when spaces were typed in place of hyphens. [#86128] |
| fixed | Fixed structured REST queries incorrectly taking the OpenAPI field path and dropping query parameters and path variables. [#86132] |
| fixed | Fixed MCP-created app building threads failing on their first turn for organizations limited to Retool models. [#86156] |
| fixed | Fixed app builder chat threads on a Retool model not generating thread titles and branch descriptions. [#86188] |
| fixed | Fixed POST /api/validate-nonce returning 500 instead of 400 for a non-string nonce. [#86194] |
| fixed | Fixed POST /api/resources to return 400 instead of 500 when the request body is invalid. [#86221] |
| fixed | Fixed a dropped publish connection showing a generic server error instead of a clear network error message. [#86234] |
| fixed | Fixed workflow release endpoints returning 500 instead of 400 for a malformed release ID. [#86235] |
| fixed | Fixed POST /api/grid/retooldb/runMigration returning 500 instead of 404 when the environment has no Retool DB resource. [#86250] |
| fixed | Fixed the custom component collection file endpoint returning a server error for a malformed collection or revision id, it now returns a bad request response instead. [#86253] |
| fixed | Fixed the organization blob endpoint returning a server error for a malformed blob id, it now returns a bad request response instead. [#86256] |
| fixed | Fixed table preview in access policies returning 500 instead of 404 when the queried table does not exist. [#86258] |
| fixed | Fixed the new app builder thread messages endpoints returning 500 instead of 400 for invalid message content. [#86265] |
| fixed | Fixed CLI pushes being incorrectly rejected when an app's agent-written files existed on a thread branch that the push itself did not modify. [#86272] |
| fixed | Fixed numbered list items with inline formatting in agent chat wrapping onto ragged columns and losing spaces between words. [#86278] |
| fixed | Fixed workflow-triggered agent runs failing immediately with no tool calls or model response. [#86279] |
| fixed | Fixed external apps opt-in getting stuck after a duplicate role grant, which could leave an organization unable to finish enabling external apps. [#86289] |
| fixed | Fixed the MCP authentication dialog briefly showing a false missing resource error while resource data was still loading. [#86299] |
| fixed | Fixed false 'is not defined' warnings for existing components and queries in the JavaScript code editor in classic apps. [#86319] |
| fixed | Fixed JavaScript executor proxy requests continuing after the sandbox disconnects, which could rerun queries. [#86429] |
| fixed | Fixed dynamic icon components reloading the page when referencing a missing icon. [#86520] |
| fixed | Fixed source control UUID mappings being lost when resources and workflows are unprotected, preventing reprotection from retaining repository identity. [#86556] |
| fixed | Fixed source control deployments failing when a protected resource declared a suffixed symbol. [#86557] |
| fixed | Fixed the permissions migration leaving admin groups without folder access scopes. [#86598] |
| fixed | Fixed the new app builder caching non-spec responses from OpenAPI spec URLs and never fetching them again. [#86632] |
| fixed | Fixed POST /api/requestAccessToOrg returning 500 instead of 4xx for a malformed email or orgId. [#86647] |
| fixed | Fixed the new app builder ignoring OpenAPI operations that have no operationId. [#86664] |
| fixed | Fixed creating a branch from a missing Azure Repos branch returning 500 instead of 404. [#86899] |
| fixed | Fixed function-approval-status returning 500 instead of 404 for a commit that is not in the app repository. [#86900] |
| fixed | Fixed email auto-join assigning the wrong seat type when External Apps is turned on. [#86910] |
| fixed | Fixed workflow blocks being reported as successful when their query fails, so retry policies now run. [#86921] |
| fixed | Fixed the new app builder choosing a default AI model that no available resource could run. [#86945] |
| fixed | Fixed a 403 error when triggering a workflow from a module embedded in a classic app for users without workflow permissions. [#86950] |
| fixed | Fixed GET /api/playground/:queryId/latestSave to return 400 instead of 500 for invalid query IDs. [#86978] |
| fixed | Fixed requests hanging when the backend cannot lease a database connection from the pool. [#87013] |
| fixed | Fixed embedded apps in the new app builder blocking full-screen, clipboard, and geolocation access. [#87046] |
| fixed | Fixed GET /api/scim/v2/Groups/:groupId returning a server error instead of a client error for non-numeric group IDs. [#87105] |
| fixed | Fixed the permissions V2 migration failure banner continuing to show for organizations that had already finished migrating. [#87175] |
| fixed | Fixed release creation failing with the error Element not protected for source control elements stuck in a pending unprotect state. [#87182] |
| fixed | Fixed Azure AI queries in the new app builder failing when no deployment name was set. [#87212] |
| fixed | Fixed source control deploys reporting Git provider rate limits as bad commits and emailing admins. [#87254] |
| fixed | Fixed source control Deployment Details to show app builder app names and repo paths instead of UUIDs for failed syncs. [#87293] |
| fixed | Fixed sign-in pages allowing signed-in users to log in as a different user, which left open tabs with the first user's state. [#87302] |
| fixed | Fixed the Retool CLI not pulling workflow type declarations, so local TypeScript checks could not resolve workflows. [#87341] |
| fixed | Fixed the Code tab in the new app builder not refreshing its file list after restoring a commit. [#87389] |
| fixed | Fixed the Code Executor leaking file descriptors from abandoned warm workflow jobs, which could exhaust descriptors on long-running instances. [#87399] |
| fixed | Fixed a backend memory leak where pooled Postgres connections kept finished requests in memory, causing heap usage to grow over time. [#87406] |
| fixed | Fixed the detail pane reloading when you click the left pane of a split-screen tablet tab in the mobile app editor. [#87410] |
| fixed | Fixed the Copy verification log button reporting no log after the permissions migration. [#87438] |
| fixed | Fixed the merge commit created when merging the default branch into a feature branch not being signed on GitHub. [#87449] |
| fixed | Fixed users without the App Builder role landing on a Forbidden page after first sign-in to the new app builder. [#87465] |
| fixed | Fixed the live AI model registry refresh ignoring HTTP proxy settings on instances that reach the internet through a proxy. [#87495] |
| fixed | Fixed resource.rawRequest dropping the request body on DELETE requests in backend functions in the app builder. [#87517] |
| fixed | Fixed app builder backend function type declarations advertising Retool Storage StreamRaw methods that always fail, and added a warning that read and download buffer the entire file in memory. [#87608] |
| fixed | Fixed the app builder editor sometimes showing a loading spinner indefinitely on first load. [#87614] |
| fixed | Fixed localStorage.setValue() in classic apps overwriting values written by other browser tabs. [#87665] |
| fixed | Fixed Ask AI in generate mode not showing errors when a query generation request failed. [#87707] |
| fixed | Fixed AWS Secrets Manager ignoring the configured region when authenticating with an IAM role ARN. [#87713] |
| fixed | Fixed an error when clicking a file icon in the merge branch editor for protected apps. [#87714] |
| fixed | Fixed token counting and embedding truncation failing on text that contains the literal endoftext special-token marker. [#87723] |
| fixed | Fixed terminal color codes appearing in app builder publish failure messages in the source control Deployment Details dialog. [#87749] |
| fixed | Fixed auto-height ListView components in classic apps not scrolling at some browser zoom levels and display scales. [#87762] |
| fixed | Fixed Notion queries failing when the Notion-Version header was not set by sending 2022-06-28 by default. [#87840] |
| fixed | Fixed source control sync failing for newly created branches in AWS CodeCommit repositories. [#87841] |
| fixed | Fixed MCP OAuth discovery by allowing unauthenticated requests to the protected resource metadata path, including the path-aware /mcp URL. [#87934] |
| fixed | Fixed the group permissions page showing the wrong environment badge for Retool Storage access. [#87951] |
| fixed | Fixed the Retool CLI reporting an expired session when a session refresh failed for a temporary reason such as a network error or server outage. The CLI now retries once and asks you to sign in again only when the host rejects the refresh. [#88061] |
| fixed | Fixed the app builder chat showing an error chip for user input form calls with invalid parameters that the agent corrects on its own. [#88127] |
| fixed | Fixed streamed thinking and text blocks in the app builder chat appearing out of order or disappearing before they were saved. [#88128] |
| fixed | Fixed files that call a deleted workflow blocking pushes, publishes, and function approvals in the app builder. These calls now show a non-blocking warning. [#88214] |
| fixed | Fixed the app builder switching from Temporal to pg-boss on deployments with Retool-managed Temporal. Added RR_POSTGRES_ORCHESTRATION_BACKEND to select pg-boss explicitly. [#88216] |
| fixed | Fixed source control sync retrying every 10 seconds when the default branch is missing from an Azure Repos repository. Sync now backs off exponentially until the branch configuration is fixed. [#88252] |
| fixed | Fixed queries started from workflow blocks and app builder backend functions continuing to run after the caller disconnects or the block times out. Query cancellation applies to Postgres resources only. [#88260] |
| fixed | Fixed workflow queries that time out leaving the backend connection open and continuing to stream results. [#88261] |
| fixed | Fixed the app builder git server process crashing about 50 minutes after a publish was rejected as a duplicate. [#88262] |
| fixed | Fixed the app builder chat jumping each time the agent finishes a tool call while you follow the stream. [#88307] |
| fixed | Fixed Retool Database setup failing with a permission denied for database error when the Postgres user is not a superuser, as on managed Postgres services such as RDS, Aurora, Cloud SQL, and Azure. [#88311] |
| fixed | Fixed Google Vertex AI queries not resolving secrets and configuration variables in the Project ID field. [#88321] |
| fixed | Fixed long query error messages, such as Databricks errors that repeat the full SQL text, dropping the connection and showing a generic error instead of the real message. [#88324] |
| fixed | Fixed unreadable text in dialogs, alert dialogs, sheets, and drawers in dark mode for apps in the app builder that use an organization theme. [#88378] |
| fixed | Fixed the app builder file search bar being hidden when returning to the Code tab with an active search. [#88392] |
| fixed | Fixed Cmd/Ctrl+F in the app builder code editor to focus and select the find query when the find bar is open. [#88395] |
| fixed | Fixed a prompt to the app builder AI being lost when the sandbox restarted before saving it. [#88410] |
| fixed | Fixed the source control branch switch dialog in classic apps missing branches created in another browser tab. [#88484] |
| fixed | Fixed source control sync retrying every 10 seconds when a GitHub App installation ID is missing or the enterprise URL is invalid. [#88528] |
| fixed | Fixed app builder chat ending a turn scrolled up and dropping conversation entries when a save finishes late. [#88560] |
| fixed | Fixed the app builder function playground History tab showing a previous-version banner for runs that used the current code. [#88572] |
| fixed | Fixed encrypted reasoning from OpenAI models being dropped when it arrives late in a streamed response. [#88595] |
| fixed | Fixed leftover app builder jobs not draining after switching between pg-boss and Temporal. [#88610] |
| fixed | Fixed per-user OAuth resource sign-in failing with a CSRF error in published apps on self-hosted instances with hostname mode turned on. [#88685] |
| fixed | Fixed the source control status page retry message to match the one hour maximum retry interval. [#88777] |
| fixed | Fixed Download as ZIP exporting the starter template for unpublished apps built in the app builder. The option is now disabled until the app is published, and the download endpoint returns 409. [#88780] |
| fixed | Fixed an app builder editor crash when a chat thread contains a malformed implementation plan. [#88800] |
| fixed | Fixed creating a workflow from a template on Workflows Home hanging when no folder is selected. [#88885] |
| fixed | Fixed frontend load failures during rolling deploys when a pod is missing assets from the previous release. [#88892] |
| fixed | Fixed the app builder agent leaving merge conflict markers in an app after a paused git merge. [#88987] |
| fixed | Fixed the retool_list_folders and retool_get_folder MCP tools failing on orgs with file, process, or universal folders. [#88995] |
| fixed | Fixed the retool_get_workflow and retool_delete_workflow MCP tools to validate workflow IDs as UUIDs and accept upper-case IDs. [#88996] |
| fixed | Fixed MCP workflow run tools always returning null for completed_at and created_by. [#89000] |
| fixed | Fixed publishing an app builder branch that is behind main to return a clear error immediately instead of failing after the publish starts. [#89062] |
| fixed | Fixed MongoDB queries failing with connection errors when workflows ran async and standard queries together. [#89110] |
| fixed | Fixed protected Agents failing to open with a misleading permissions error after creating or switching to a source-control branch. [#89281] |
| fixed | Fixed the Nonce provided is invalid or already redeemed error when pressing back in an embedded classic app. [#89298] |
| fixed | Fixed Source Control deploys leaving app builder apps unprotected when their files already matched the main branch. [#89319] |
| fixed | Fixed app builder naming and commit messages failing without a default LLM provider. [#89396] |
| fixed | Fixed branch cleanup deleting Azure Repos branches that still exist in the remote repository. [#89400] |
| fixed | Fixed the Jobs Runner starting overlapping branch cleanup runs that deleted each other's clones. [#89405] |
| fixed | Fixed outbound requests failing when an HTTP proxy is configured. [#89410] |
| fixed | Fixed the rotate API key reminder appearing in a workflow's Triggers panel when the webhook trigger is off. [#89425] |
| fixed | Fixed the Data Access Enforcement warning listing workflows that have a service user set. [#89429] |
| fixed | Fixed app builder MCP tools being unavailable on deployments that use pg-boss without Temporal. [#89647] |
| fixed | Fixed app owners who are not admins sharing apps when Allow app owners to manage permissions is off. [#89678] |
| fixed | Fixed admin space apps in the app builder being limited to 60 characters instead of 63 for the app identifier. [#89697] |
| fixed | Fixed long-running backend functions in the app builder losing their responses behind proxies with idle timeouts. [#89791] |
| fixed | Fixed secrets and configuration variables not resolving in AI resource connection fields. [#90001] |
| fixed | Fixed sign-in from a published app's hostname redirecting to the apps list on self-hosted. [#90120] |
| fixed | Fixed requests with a non-Retool Bearer token returning a 401 error when they also have a valid session cookie. [#90764] |
| improved | Improved the new app builder's agent so it can diagnose when an app's own CSS overrides the organization's theme instead of reporting that changes cannot be applied. [#81117] |
| improved | Updated the publish button label in the new app builder to reflect the current branch's pull request status. [#81758] |
| improved | Improved the publishing of an organization's library npm tarballs by excluding unnecessary files from package contents. [#81918] |
| improved | Improved permission check performance by parallelizing independent phases within access-level resolution. [#82030] |
| improved | Improved the app builder AI agent's guidance to consistently use schema lookup helpers for SQL schema discovery instead of querying system tables directly. [#82053] |
| improved | Improved wording and visual polish across the Admin Onboarding Hub, including the permissions wizard steps, the day-1 setup complete banner, and the action center styling. [#82063] |
| improved | Improved the AI usage tab in Usage Analytics with clearer BYOK-focused copy and a tooltip explaining unknown user attribution. [#82087] |
| improved | Reported Content Security Policy violations from the app builder preview as console errors. [#82197] |
| improved | Improved the Allow access step by pinning the selected table while scrolling. [#82200] |
| improved | Improved app builder agent guidance for discovering resources that belong to a generic resource type. [#82269] |
| improved | Improved the visual styling of info badges and menu item typography in the new app builder. [#82516] |
| improved | Improved the new app builder's backend hook regeneration to only rewrite and broadcast changed hook files instead of the full set. [#82705] |
| improved | Improved the new app builder's theme editor with an interactive, multi-view app preview. [#82709] |
| improved | Improved the publish and releases modal in the app builder with several small UX refinements. [#82823] |
| improved | Improved sandbox warm restore so the server-side branch tip is authoritative instead of relying on a websocket-delivered realignment. [#82888] |
| improved | Improved debug console dragging and resizing behavior in the new app builder. [#83073] |
| improved | Enabled react_apps:write Personal Access Token scope for all plans and non-admin users. [#83119] |
| improved | Improved the agent to process every queued prompt in a single turn instead of one at a time. [#83188] |
| improved | Improved log badge visibility in the new app builder by adding flash animation and fixing hover panel clipping. [#83229] |
| improved | Improved how the app editor tracks a working branch's latest commit so it updates immediately from the sandbox instead of waiting on a separate request. [#83268] |
| improved | Improved the Version History panel's working-branch tab in the new app builder to load commits directly from the sandbox instead of the server, including live diffs for unpublished changes. [#83269] |
| improved | Improved GitLab API reliability by adding automatic retry logic. [#83312] |
| improved | Improved reliability of concurrent app publishing during source control deploys. [#83408] |
| improved | Improved the new app builder's protected publish flow to show pull request status for Bitbucket and Azure DevOps repositories. [#83474] |
| improved | Improved the new app builder file deletion, making delete controls always available in the editor and for agents. [#83776] |
| improved | Improved the rename modal for protected apps and resources so leading or trailing whitespace in the name only shows an error on submission, not while typing. [#83992] |
| improved | Improved the new app builder's Version History diff viewer to load a working-branch commit's files one at a time from the sandbox instead of fetching the whole commit at once. [#84049] |
| improved | Reduced startup latency overhead for JavaScript query execution by polling more frequently for the sandbox memory monitor to attach. [#84111] |
| improved | Improved the error message shown when a pinned release in a git-based release manifest references a Retool React app that cannot be found or is unprotected. [#84136] |
| improved | Improved the governance policy editor to make Create the primary action for a new policy. [#84137] |
| improved | Improved the rename and move app modals with tighter spacing and a note that the change appears after the source control deployment finishes. [#84142] |
| improved | Improved new branches in the new app builder to default their description to "New branch" instead of appearing blank. [#84162] |
| improved | Improved the permission-denied message on the new resource page so the toast persists through the redirect to the resources list. [#84210] |
| improved | Improved the new-file dropdown menu in the Code tab of the new app builder, grouping options into folder, frontend, and backend sections with dividers and color-coded icons. [#84291] |
| improved | Improved Databricks query result streaming to reduce memory use and time to first row. [#84466] |
| improved | Improved the permission viewer by collapsing large resource method groups by default. [#84488] |
| improved | Improved the error message when a workflow's JavaScript module cannot be resolved. [#84619] |
| improved | Made resource, query, app, and workflow id arrays optional on POST /api/v2/spaces/copyElements. [#84732] |
| improved | Clarified the error shown when a resource migrated from the deprecated Retool AI resource cannot be protected by source control. [#84787] |
| improved | Improved resource catalog search ranking so exact name and prefix matches rank above keyword matches. [#84910] |
| improved | Improved error messages shown when a managed OpenAI model is unavailable to an organization. [#84942] |
| improved | Improved page responsiveness after the first query on published apps with Layout Compiler enabled. [#84959] |
| improved | Improved generated app names for short prompts like "todo list" instead of skipping name generation. [#84969] |
| improved | Improved Publish History commit-message attribution for the new app builder's synced Git publishes, correctly attributing external commits to the app they belong to. [#85157] |
| improved | Introduced a tooltip explaining Plan mode in the new app builder. [#85169] |
| improved | Improved JS Executor error messages so every failure includes an actionable explanation. [#85188] |
| improved | Improved MCP server reliability by raising the token introspection cache TTL from 30 seconds to five minutes. [#85290] |
| improved | Improved the new app builder's editor performance by moving backend-function analysis to the sandbox instead of parsing app code in the browser, reducing main-thread blocking in apps with many functions. [#85344] |
| improved | Improved CLI guidance to point users toward retool push -m for descriptive commit messages. [#85376] |
| improved | Made app publishing resume automatically if interrupted by a backend deploy, instead of failing. [#85430] |
| improved | Improved the workflow log viewer to load block results in pages so large runs no longer overload the server. [#85540] |
| improved | Improved skill-load chips in the new app builder to show readable skill names instead of internal identifiers. [#85608] |
| improved | Improved the Retool MCP server by defining an output schema for every tool, so AI clients can see each tool's result fields. [#85871] |
| improved | Enabled chunked-columnar streaming for all Microsoft SQL Server queries, removing the previous tier-based restriction. [#85955] |
| improved | Enabled Anthropic prompt caching for Agents, the Workflows AI Action block, and text and chat App AI queries, reducing cost and latency for repeated calls. [#85995] |
| improved | Published apps served via iframe now appear in recently visited apps. [#86050] |
| improved | Freetool organizations now see every AI model provider in the model picker, with providers beyond Retool models shown and labeled as requiring a Team plan. [#86087] |
| improved | Reduced memory usage for streamed PostgreSQL query results by no longer accumulating every row in memory during streaming. [#86095] |
| improved | Introduced a tooltip showing the full branch name on hover in the View all branches modal. [#86126] |
| improved | Improved Retool MCP app sharing: access lists show subject names and where each access level comes from, granting or revoking access explains when nothing changed, and app create and publish results summarize who can open the app. [#86290] |
| improved | Improved job queue shutdown and cancellation handling when the new app builder uses pg-boss. [#86452] |
| improved | Improved the Function Playground in the new app builder to show dropdowns for boolean and enum parameters. [#86495] |
| improved | Improved S3 storage resilience to DNS outages by caching DNS results for up to one hour. [#86538] |
| improved | Enabled MCP read and write grants to call the workflows API endpoints, which previously required mcp:admin. [#86569] |
| improved | Improved the Retool CLI to warn when a checkout is behind main and point to retool pull --from main. [#86688] |
| improved | Improved app builder preview builds on instances without Temporal by running them as background jobs with build status and automatic crash retries. [#86748] |
| improved | Improved reliability by retrying user permission queries after transient database connection resets. [#86773] |
| improved | Improved Google Sheets read and search queries by streaming results by default. [#86992] |
| improved | Improved backend memory use by canceling in-flight query work when a client disconnects. [#87051] |
| improved | Improved retool status to detect stale workflow type declarations in the Retool CLI and report them on the Backend types line. [#87342] |
| improved | Improved the resource picker in the app builder chat by docking it above the message box and adding a Cancel button. [#87403] |
| improved | Reduced memory usage during Source Control syncs of apps, workflows, and queries by processing release files one at a time. [#87407] |
| improved | Improved load time of the new app builder editor by no longer loading the classic app editor code. [#87409] |
| improved | Improved the app builder to show an error toast when a manual Code tab edit is refused and not saved. [#87524] |
| improved | Improved performance of long chat histories in the app builder by rendering only visible messages. [#87567] |
| improved | Improved app builder editor performance and memory use while the agent streams large file writes. [#87615] |
| improved | Improved app builder chat responsiveness and reduced memory use while streaming long replies. [#87625] |
| improved | Improved source control sync memory use by reading React app source files only when each app is synced. [#87681] |
| improved | Improved source control sync memory use by loading playground queries and themes once per deploy instead of once per app. [#87682] |
| improved | Improved the Retool AI settings page to show a specific error with a link to the resource when all models are disabled. [#87712] |
| improved | Improved publish performance for large apps in the app builder. [#87775] |
| improved | Improved repository load time in the app builder for repos with many branches or tags. [#87776] |
| improved | Improved the JS Executor service to exit at startup when it cannot start a sandbox, instead of reporting ready while every request fails. [#87818] |
| improved | Improved Retool CLI push validation speed for large pushes to the app builder. [#87954] |
| improved | Improved the error message shown when a bulk user invitation exceeds the daily invite limit. [#88022] |
| improved | Improved Retool CLI error messages to tell you to run retool auth login when a request or push fails with a 401 error. [#88062] |
| improved | Improved source control sync to back off when Azure Repos rejects credentials, such as an expired personal access token. [#88136] |
| improved | Improved Plan mode in the app builder so the full plan and your stated requirements carry over when you switch to Build. [#88152] |
| improved | Improved error messages in the app builder when the git server rejects a push or the publish precheck fails, naming the blocked file and the action to take. [#88172] |
| improved | Improved the Edit app footer on published apps so it can be minimized, and the choice persists across refreshes. [#88184] |
| improved | Improved resource search so the Oracle DB resource appears when searching for Oracle AI Database, 26ai, or 23ai. [#88269] |
| improved | Improved source control sync to validate GitHub App private keys on save and back off retries when a key is invalid. [#88275] |
| improved | Introduced a close button on the visual edit prompt in the app builder that closes the prompt and keeps the draft. [#88329] |
| improved | Improved the visual edit prompt in the app builder to keep a separate draft for each selected element. [#88330] |
| improved | Improved app builder reliability by downsampling large images sent to the AI model, avoiding request size limit errors. [#88438] |
| improved | Improved the app builder prompt on the home page with a larger input and updated styling. [#88515] |
| improved | Improved the app builder selection prompt to open next to the selected element and lock preview scrolling while it is open. [#88679] |
| improved | Reduced each user in retool_list_audit_logs MCP tool results to id and email. [#88994] |
| improved | Clarified that deleting a workflow through the API or MCP is permanent and skips Trash. [#88999] |
| improved | Lifted the maximum date range limit in AI visibility settings. [#89081] |
| improved | Improved the error shown when the JS Executor cannot reach the workflow backend. It now names WORKFLOW_BACKEND_HOST instead of returning Internal server error. [#89083] |
| changed | Renamed the app builder's app-local theme file from orgTheme.css to theme.css, with automatic migration for existing apps. [#81387] |
| changed | Updated deprecation timelines for several OpenAI models available in AI Actions and resource queries, and expanded managed-key availability for a newer GPT model in Agents and AI resource queries. [#81464] |
| changed | Renamed remaining shared context references to building context in the new app builder's UI copy. [#81917] |
| changed | Increased the app serving layer's production shutdown grace period so in-flight requests can drain before the process is force-killed. [#81937] |
| changed | Changed the root app file in the new app builder to be editable by both users and the agent, but it can no longer be deleted, preventing accidental removal of the app's root component. [#81953] |
| changed | Refined the visual style of the thread selector in the app builder. [#81970] |
| changed | Updated the style of the delete button in the app builder. [#81976] |
| changed | Changed the building context settings description in the new app builder to include a link to the documentation. [#82031] |
| changed | Replaced the legacy chip UI with the redesigned homepage onboarding carousel as the permanent default. [#82061] |
| changed | Moved the shared preview link controls from the editor footer into the Version History panel. [#82097] |
| changed | Renamed AI action references to AI resource query across the workflow builder and related UI copy. [#82141] |
| changed | Clarified the AI Credits billing page copy to distinguish Retool-managed keys from BYOK usage, with a link to usage analytics for BYOK. [#82151] |
| changed | Moved the Sync button in the Version History panel and made its icons consistent in size. [#82177] |
| changed | Changed the icon shown for custom and open source AI providers in Retool AI. [#82207] |
| changed | Capped the executeJS response body at 100MB. [#82211] |
| changed | Updated the Tag commit modal for app builder apps, including tag button behavior and tooltips. [#82221] |
| changed | Changed frontend package version validation so app dependencies managed by Retool, including React 19, must stay on the canonical pinned versions. [#82362] |
| changed | Removed the Beta label from the Google Drive integration. [#82437] |
| changed | Made the admin settings overview, Day-1 setup wizard, and Action Center generally available for admin and enterprise organizations. [#82588] |
| changed | Updated the Google Workspace resource icons for Calendar, Docs, Sheets, Slides, Gmail, and Drive to match Google's refreshed brand identity. [#82706] |
| changed | Renamed Version History panel to Change History in the new app builder. [#83218] |
| changed | Enabled a warning when turning on headless workflow-run enforcement about runs with no attributable user. [#83335] |
| changed | Changed how the agent handles chat file attachments so uploaded files always go through the sandbox's /uploads/ folder instead of being sent inline to the model. [#83351] |
| changed | Changed the new app builder's npm registry proxy to support vendor-neutral registries and anonymous authentication. [#83413] |
| changed | Changed on-premises telemetry to report only whether REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, and their Redis User Cache and RPC Redis equivalents are set, without exposing their values. [#83552] |
| changed | Disabled legacy MSSQL connector versions by default for self-hosted. [#83728] |
| changed | Changed NPS survey eligibility to require real build activity, such as page saves, agent threads, or workflow saves, instead of admin or editor permissions alone. [#84054] |
| changed | Changed AI Visibility to a single, centralized page in Settings. [#84176] |
| changed | Changed Retool AI queries to use a fixed list of supported models. [#84224] |
| changed | Changed the MSSQL connector deprecation banner to past tense now that the deprecation date has passed. [#84302] |
| changed | Updated the publish modal's error message to say backend function instead of serverless function, matching the rest of the IDE. [#84357] |
| changed | Enabled data security policy enforcement by default. [#84625] |
| changed | Changed retool check in the Retool CLI to stop overwriting modified platform-owned files and added retool check --fix to repair them. [#84656] |
| changed | The Gmail integration now always appears in the create a resource menu. [#84770] |
| changed | Required edit access to every resource and workflow a serverless function uses before a user can approve it. [#84799] |
| changed | Updated Assist default model mappings to remove models with upcoming deprecation dates. [#84981] |
| changed | Renamed the new app builder's "Integrate changes" flow to "Merge changes" in button labels and status messages. [#85034] |
| changed | Collapsed the Retool Fast model picker option to a single model, GLM-5.2-Fast. [#85038] |
| changed | Disallowed invalid characters in the app URL input field, auto-converting spaces to dashes and letters to lowercase. [#85048] |
| changed | Defaulted first-time publishes in the new app builder to the Published folder or the folder previously published to. [#85099] |
| changed | Enabled secret redaction from resource query responses and errors by default. [#85357] |
| changed | Changed access policy rows to use a status switch instead of Activate and Deactivate buttons. [#85433] |
| changed | Simplified the SQL resource permission matrix to a flat list instead of a collapsed accordion. [#85439] |
| changed | Changed the Retool CLI's retool apps command to omit trashed apps by default. [#85633] |
| changed | Self-hosted instances now enforce the same per-user serverless function concurrency cap as Retool Cloud, defaulting to 100 concurrent executions per user. [#85834] |
| changed | Enforced the Team plan's two-environment limit at creation time, closing a race condition that let concurrent requests create extra environments. [#85933] |
| changed | Changed the per-user limit for backend function executions in apps built with the new app builder to 50 concurrent executions. [#85968] |
| changed | Made the one-time publish tooltip for new app builder users a permanent feature instead of an experiment. [#86138] |
| changed | Changed the default Ask AI model to GPT-5 Nano for organizations using a Retool-managed OpenAI provider. [#86286] |
| changed | Changed upgrades to rebuild permissions v2 object roles and grants from existing permissions data on self-hosted instances, replacing roles created by earlier migrations. [#86605] |
| changed | Changed JDBC, Presto, and Vertica pool retries to exponential backoff and lowered the default maximum attempts from 20 to eight, including PRESTO_POOL_MAX_CONNECTION_RETRIES. [#86807] |
| changed | Changed published apps in the new app builder to hide the edit footer when embedded in an iframe. [#86895] |
| changed | Changed MongoDB find, aggregate, and listCollections queries to stream results by default. [#86926] |
| changed | Changed Postgres queries to stream results by default. [#86955] |
| changed | Changed the new app builder to stop generating typed clients for legacy OpenAPI resources that use YAML specs, to prevent app serving out-of-memory errors. [#87045] |
| changed | Changed Retool AI queries to fail with the provider's error message when the AI response reports a failure, instead of returning it as query data. [#87189] |
| changed | Changed the Retool MCP server retool_get_user tool to reject numeric legacy IDs and require the id returned by retool_list_users. [#87237] |
| changed | Changed source control sync to use external Git commit messages in version history for protected apps in the app builder. [#87387] |
| changed | Restricted creating, changing, and deleting workflow triggers, and rotating the webhook API key, to users with edit access to the workflow. [#87452] |
| changed | Changed apps in the new app builder to support embedding in cross-site iframes by default. [#87466] |
| changed | Renamed the Databricks SQL resource to Databricks Lakehouse in the resource picker and form, and pointed Lakebase help to its own guide. [#87469] |
| changed | Changed the MCP OAuth consent screen to show the name of the requesting client instead of Retool MCP. [#87488] |
| changed | Renamed the Updated App Builder AI provider setting to AI App Builder in AI resource forms and AI settings. [#87552] |
| changed | Changed the Retool CLI public beta card on the Home page to show by default. [#87553] |
| changed | Changed S3 read and download queries to always stream responses. Removed the S3 object streaming toggle from Beta settings. [#87594] |
| changed | Changed the role create, update, and delete API endpoints to accept MCP tokens with the mcp:admin grant. [#87689] |
| changed | Published the latest tag for the js-executor-service and agent-sandbox-service multi-arch images on Docker Hub. [#87764] |
| changed | Changed PATCH /api/v2/role_permissions/roles/:id to return a 400 error when updating an object-scope system role. [#87799] |
| changed | Changed permissions role creation and the role editor to prevent mixing per-object and universal object scopes in one role. [#87805] |
| changed | Changed the app builder agent to see resources across all of your organization's environments and to use the useEnvironment hook when building environment switchers. [#87829] |
| changed | Enabled permissions v2 by default on self-hosted instances after an organization completes its permissions migration. [#87893] |
| changed | Changed Retool Storage to always clean up abandoned and stray uploads. Removed the RETOOL_STORAGE_FILE_SWEEPER_ENABLED and RETOOL_STORAGE_STRAY_FILE_SWEEPER_ENABLED environment variables. [#88174] |
| changed | Changed the maximum wait between failed source control deploy retries to one hour. [#88194] |
| changed | Changed the Agents Configuration Assistant to allow choosing any OpenAI, Anthropic, Azure AI, or AWS Bedrock resource that you can query. [#88212] |
| changed | Changed the AWS Bedrock Claude Sonnet 4 model to deprecated, with Claude Sonnet 4.6 as its replacement, after the model reached end of life on October 14, 2026. [#88314] |
| changed | Changed serverless functions and resource code to run without Node.js globals (process, Buffer, global, setImmediate, and clearImmediate) by default. Code that still depends on them throws a ReferenceError. To turn this off, clear Disable Node globals in sandbox execution in Settings > Beta. [#88372] |
| changed | Changed Smart blocks in workflows to run on the organization's default AI model and removed the model picker. [#88453] |
| changed | Changed app builder background jobs to run in a dedicated pgboss_r2 schema. Jobs left in the previous pgboss2 schema are not migrated. [#88533] |
| changed | Changed the data access enforcement beta setting title and description to match Data Access Enforcement naming. [#88765] |
| changed | Changed app builder publishing to check function approvals and validate backend code in the publish sandbox for editor and MCP publishes. [#88801] |
| changed | Changed the app builder to save its pg-boss or Temporal backend choice on first boot. [#88979] |
| changed | Dropped Beta badges from the app builder. [#89050] |
| changed | Changed bare retool init in the Retool CLI to create a new directory when the current one has files. [#89119] |
| changed | Enabled skipping release artifacts that already exist during full source control deploys by default. [#89131] |
| changed | Changed Microsoft SQL Server resources to ignore connection string parameters not on an allowlist. [#89561] |
| changed | Changed the rotate API key reminder for workflow run identity to recommend rotating the webhook API key, and added a Copy key action after rotating. [#89686] |
| changed | Replaced the on-prem iframe-hosted mode setting with Enable app hostnames for published apps. [#90070] |
| changed | Changed service users for workflows to be on by default. [#90500] |
| changed | Changed Retool-managed AI keys on self-hosted instances to authorize with the license key by default, so OPENAI_PROXY_API_TOKEN is optional. [#90651] |
| changed | Changed self-hosted instances to allow serverless functions to run up to 300 seconds by default. Admins can lower the maximum in Settings > Beta. [#90786] |
| changed | Changed app testing to be available as an opt-in Beta setting on self-hosted instances. [#90843] |
| removed | Removed an unpopulated subdomain field from the BYOK usage API response, since it is not populated for self-hosted instances. [#81942] |
| removed | Removed the promotional banner, video, and button from the form submission success screen. [#82447] |
| removed | Removed the Custom API Endpoint field for BigQuery resource connections, previously used to route traffic through a Private Service Connect endpoint. [#83456] |
| removed | Removed the ability to create or duplicate Vertica resources. [#84234] |
| removed | Removed the Submit a prompt item from the Help menu. [#84283] |
| removed | Removed the classic command palette (Cmd/Ctrl+K) from the new app builder. [#85647] |
| removed | Removed Microsoft SQL Server connector versions 1 and 2. All SQL Server resources now use version 3. [#88278] |
| deprecated | Deprecated BigID resources: organizations can no longer create or duplicate a BigID resource, though existing ones can still be edited or deleted. [#84048] |
| security fix | Fixed a Temporal workflow isolation bug that could leak module-level state across workflow executions on a reused V8 context, and upgraded the Temporal TypeScript SDK to 1.14.2. [#80896] |
| security fix | Patched the ws package to version 8.21.2 in the code executor workflows environment. Resolves CVE-2026-48779. [#81022] |
| security fix | Patched the websocket-driver dependency. Resolves CVE-2026-54466 and CVE-2026-54490. [#81175] |
| security fix | Patched the dd-trace dependency. Resolves CVE-2026-50272. [#81176] |
| security fix | Bumped the PostgreSQL JDBC driver to 42.7.12. Resolves CVE-2026-54291. [#81503] |
| security fix | Bumped the sharp image library to 0.35.3. Resolves GHSA-f88m-g3jw-g9cj. [#81606] |
| security fix | Bumped the svgo dependency to patch a cross-site scripting vulnerability in its script-removal plugin. Resolves GHSA-2p49-hgcm-8545. [#81609] |
| security fix | Bumped the dompurify dependency to 3.4.12. Resolves GHSA-c2j3-45gr-mqc4. [#81610] |
| security fix | Bumped the Java DB connector's jackson dependency to 2.21.5. Resolves CVE-2026-59889 and CVE-2026-54515. [#81612] |
| security fix | Fixed a permission gap that let any authenticated organization member list and download other users' Retool Storage files. [#81729] |
| security fix | Fixed a data access enforcement vulnerability that could allow unauthorized access to restricted rows under certain SQL query conditions. [#82080] |
| security fix | Fixed config variable default values being stored in plaintext instead of encrypted at rest. [#82109] |
| security fix | Fixed a missing permission check that allowed bulk inserts into non-RetoolDB tables without the required table write permission. [#82153] |
| security fix | Fixed a data access enforcement vulnerability that could allow row-level security filters to be bypassed under certain query conditions. [#82178] |
| security fix | Applied audit logging to resource connection tests to detect destination overrides. [#82192] |
| security fix | Fixed a security vulnerability that allowed AI agent thread snapshots in the new app builder to be created or restored across users and organizations. [#82317] |
| security fix | Fixed a data access enforcement vulnerability that could incorrectly authorize access to restricted tables under certain conditions. [#82373] |
| security fix | Fixed a data access enforcement vulnerability that could allow unauthorized access to column data under certain query conditions. [#82376] |
| security fix | Fixed a security vulnerability that allowed a user with write access to an app to start an agent sandbox on another user's thread, exposing that user's working tree, uploads, and agent state. [#82481] |
| security fix | Patched the tar dependency. Resolves GHSA-r292-9mhp-454m. [#82482] |
| security fix | Patched the undici dependency to address multiple vulnerabilities. Resolves CVE-2026-13697, CVE-2026-14643, CVE-2026-15157, CVE-2026-16728, and CVE-2026-16729. [#82483] |
| security fix | Patched the body-parser dependency, which could silently disable body-size-limit enforcement. Resolves CVE-2026-12590. [#82484] |
| security fix | Patched a denial-of-service vulnerability in the linkify-it dependency. Resolves CVE-2026-59887. [#82485] |
| security fix | Patched the ip-address dependency, which allowed IP address parsing bypasses. Resolves CVE-2026-69192, CVE-2026-54272, and CVE-2026-69198. [#82486] |
| security fix | Patched the adm-zip dependency, which could cause out-of-memory errors from a crafted archive. Resolves CVE-2026-39244. [#82495] |
| security fix | Patched the postcss dependency to address multiple vulnerabilities, including an arbitrary file read issue. Resolves CVE-2026-45623, CVE-2026-69153, and GHSA-r28c-9q8g-f849. [#82498] |
| security fix | Patched 16 security vulnerabilities in the Spring Framework dependency used by the JDBC connector by upgrading to version 6.2.19. [#82499] |
| security fix | Patched an authentication bypass vulnerability in the spring-ldap-core dependency used by the JDBC connector. Resolves CVE-2026-41720. [#82500] |
| security fix | Patched denial-of-service vulnerabilities in the brace-expansion dependency. Resolves CVE-2026-14257 and CVE-2026-69152. [#82502] |
| security fix | Patched host-confusion vulnerabilities in the fast-uri dependency. Resolves CVE-2026-13676, CVE-2026-16221, and CVE-2026-18446. [#82504] |
| security fix | Redacted secrets from Postgres connector error logs so values echoed back in error messages are no longer written to logs. [#82798] |
| security fix | Updated the micrometer dependency in the Java database connector. Resolves CVE-2026-40983 and CVE-2026-40984. [#82799] |
| security fix | Patched the js-yaml dependency. Resolves GHSA-5p4m-2wfm-xmqj. [#82801] |
| security fix | Fixed a race condition that let a single passwordless login token be redeemed more than once concurrently. [#82822] |
| security fix | Fixed a data access enforcement vulnerability that could allow restricted rows to be read under certain query conditions. [#82856] |
| security fix | Patched a third-party ID-generation dependency to address three vulnerabilities. Resolves CVE-2026-67213, CVE-2026-67214, and CVE-2026-73086. [#82896] |
| security fix | Fixed a security vulnerability in the DOMPurify sanitization library. Resolves GHSA-55q2-fjhq-7xh7. [#82897] |
| security fix | Patched a third-party web framework dependency to address four vulnerabilities. Resolves CVE-2026-69207, CVE-2026-71848, CVE-2026-71849, and CVE-2026-71850. [#82898] |
| security fix | Disabled COPY LOCAL for Vertica JDBC connections to prevent local file access. [#82987] |
| security fix | Fixed data access controls being bypassed on cached query results for resources with row-level security enabled. [#83126] |
| security fix | Patched piscina. Fixes CVE-2026-55388. [#83183] |
| security fix | Patched @remix-run/router. Fixes CVE-2026-22029 and CVE-2026-40181. [#83184] |
| security fix | Fixed a security vulnerability in the Java database connector (CVE-2025-3588). [#83196] |
| security fix | Fixed a security vulnerability in a third-party networking dependency used for proxy connections (CVE-2026-69192, CVE-2026-42338). [#83198] |
| security fix | Patched cache-manager-redis-store and redis. Fixes CVE-2021-29469. [#83199] |
| security fix | Fixed a security vulnerability in outbound request filtering used by the image proxy (CVE-2025-57814). [#83203] |
| security fix | Patched Apache HttpComponents libraries used by the Java database connector to address multiple vulnerabilities (CVE-2026-54399, CVE-2026-54428, CVE-2026-64607). [#83220] |
| security fix | Patched BouncyCastle used by the Java database connector to address three critical vulnerabilities. [#83450] |
| security fix | Patched a Java database connector dependency to address CVE-2026-49844. [#83454] |
| security fix | Patched the code execution sandbox environment to address six security vulnerabilities (CVE-2026-69244, CVE-2026-69243, CVE-2026-59881, CVE-2026-59885, CVE-2026-59884, CVE-2026-59886). [#83457] |
| security fix | Fixed a security vulnerability related to workflow run identity handling. [#83524] |
| security fix | Fixed a vulnerability that could let a crafted query bypass data access policy enforcement on certain resources. [#83535] |
| security fix | Updated netty in the JDBC connector. Resolves CVE-2026-59902 and CVE-2026-59903. [#83539] |
| security fix | Fixed a security vulnerability in the Databricks JDBC connector. [#83568] |
| security fix | Fixed a Postgres integration issue that could leak information through SQL error details when data access enforcement restricted a query. [#83842] |
| security fix | Fixed an authorization issue that could allow a user without the required workflow permissions to view workflow run logs or export a workflow. [#83885] |
| security fix | Fixed source control credentials being exposed in error logs during git clone and fetch operations. [#83916] |
| security fix | Updated Spring Boot in the JDBC connector. Resolves CVE-2026-41001. [#84011] |
| security fix | Fixed a bug where a failed data-security policy rewrite could return internal error details to the client instead of a generic message. [#84032] |
| security fix | Fixed unauthorized access to app source code through git server endpoints for users with only read access. [#84089] |
| security fix | Fixed a vulnerability where the Presto and Vertica connectors could be used to reach unintended JDBC drivers on the shared classpath. [#84232] |
| security fix | Fixed a security vulnerability related to draft folder permissions. [#84246] |
| security fix | Fixed an authorization check that could let an unauthorized request begin app or agent thread provisioning in the new app builder before being rejected. [#84252] |
| security fix | Removed the unused tap dependency, eliminating a vulnerable pacote copy. Resolves CVE-2026-9496. [#84334] |
| security fix | Patched an issue where raw custom SSO settings, including secrets, could leak through the unprivileged organization profile projection. [#84624] |
| security fix | Fixed embedded external users receiving the full org directory and pending invite tokens. [#84693] |
| security fix | Scrubbed resource config secrets, including resource authentication passwords, from query responses and errors. [#84717] |
| security fix | Verified the XSRF token value against the session instead of only comparing header and cookie. [#84759] |
| security fix | Patched tomcat-embed. Resolves CVE-2026-68525, CVE-2026-65905, and CVE-2026-65182. [#84881] |
| security fix | Patched browserslist. Resolves CVE-2026-73089 and CVE-2026-73088. [#84882] |
| security fix | Updated mysql2. Resolves GHSA-3f6p-5ww8-9rcr and GHSA-rgwj-5xj2-c3m3. [#84883] |
| security fix | Patched @xmldom/xmldom. Resolves CVE-2026-83610, CVE-2026-83607, CVE-2026-83605, CVE-2026-83616, CVE-2026-83608, CVE-2026-83611, CVE-2026-83613, CVE-2026-83619, CVE-2026-83615, and CVE-2026-83614. [#84884] |
| security fix | Patched qs. Resolves CVE-2026-82417 and CVE-2026-82562. [#84885] |
| security fix | Patched fast-uri. Resolves CVE-2026-75931, CVE-2026-75975, CVE-2026-75899, and CVE-2026-76172. [#84907] |
| security fix | Patched fflate. Resolves CVE-2026-45820. [#84909] |
| security fix | Updated hono. Resolves CVE-2026-84363, CVE-2026-84364, and CVE-2026-84365. [#85057] |
| security fix | Updated morgan. Resolves CVE-2026-15603 and CVE-2026-87859. [#85058] |
| security fix | Updated colord. Resolves CVE-2026-85062. [#85059] |
| security fix | Updated js-yaml. Resolves CVE-2026-84375. [#85060] |
| security fix | Updated svgo. Resolves CVE-2026-84370 and CVE-2026-84369. [#85061] |
| security fix | Fixed custom authentication debug logs and error messages exposing secret config variable values. [#85108] |
| security fix | Updated sharp. Resolves GHSA-rgj7-g3m4-5g8c. [#85327] |
| security fix | Updated joi. Resolves CVE-2026-84367 and CVE-2026-84368. [#85329] |
| security fix | Fixed the unified Objects list exposing other users' personal draft and trash folders to anyone with broad object access. [#85552] |
| security fix | Patched soupsieve in the code executor sandbox environment against a polynomial-time denial of service. Resolves CVE-2026-86000 and CVE-2026-85999. [#85866] |
| security fix | Fixed data security policy saves being authorized against the caller-supplied resource name instead of the policy's actual stored resource, which could let a user with access to one resource take over and reattach any data access enforcement policy in the organization. [#86037] |
| security fix | Removed unused table editor API endpoints that bypassed data access enforcement policies, closing a gap that let a user with page-editor access read or write tables a policy explicitly denied them. [#86056] |
| security fix | Fixed Retool CLI OAuth tokens being usable by organizations without CLI access enabled, letting them sign in and run some commands despite lacking the entitlement. [#86123] |
| security fix | Fixed Google Cloud Storage and BigQuery resources accepting non-service-account credential types, which could let a user with resource test access read arbitrary files from the dbconnector. [#86143] |
| security fix | Fixed an endpoint returning unmasked resource secrets in the permissions response. [#86187] |
| security fix | Fixed Athena resource credentials being shared with other AWS resources in the same worker. [#86202] |
| security fix | Fixed Firebase resources allowing a crafted service account key to make the dbconnector read a local file on the host. [#86203] |
| security fix | Fixed custom AI providers using the OpenAI schema without a configured key inheriting Retool-managed credentials. [#86315] |
| security fix | Fixed reading certain resources with managed credential overrides, such as OAuth or Google credentials, leaving environment-provided credentials in the object later used for a save. [#86317] |
| security fix | Enforced current_user spoofing checks on cached query results to stop cross-user cache hits. [#86349] |
| security fix | Fixed a row-level security bypass caused by template expressions split across query clauses. [#86398] |
| security fix | Limited non-admin embed tokens to adding external users to groups the token owner is in. [#86439] |
| security fix | Patched joi against a regular expression denial of service and a message prototype replacement flaw. Resolves GHSA-6h2x-m376-mqjq and CVE-2026-90771. [#86497] |
| security fix | Patched fast-uri against URI port injection, host parsing, and host normalization flaws. Resolves CVE-2026-84292, CVE-2026-84394, and CVE-2026-86472. [#86499] |
| security fix | Patched ip-address against IPv6 classification and parsing flaws. Resolves CVE-2026-101910, CVE-2026-101911, CVE-2026-101912, and CVE-2026-101913. [#86501] |
| security fix | Patched markdown-it against quadratic-time parsing that could stall processing. Resolves GHSA-253c-mchw-3w2r. [#86504] |
| security fix | Updated undici to 6.28.1 and 7.29.1 and rebuilt the bundled fetch used in the workflows JavaScript sandbox. Resolves CVE-2026-18149, CVE-2026-18540, CVE-2026-19534, CVE-2026-84890, CVE-2026-84933, CVE-2026-84947, CVE-2026-84961, CVE-2026-85008, CVE-2026-85014, and CVE-2026-85024. [#86506] |
| security fix | Patched jackson-core and jackson-databind in the Java database integration. Resolves CVE-2026-19032, CVE-2026-68497, CVE-2026-83557, CVE-2026-89407, CVE-2026-89425, CVE-2026-91776, and CVE-2026-91777. [#86511] |
| security fix | Fixed workflow library names and versions allowing requirements.txt injection in the Code Executor. [#86519] |
| security fix | Fixed the Code Executor reading sandbox configurations that package build code could modify. [#86542] |
| security fix | Prevented query caching from sharing forwarded cookies or session cookie data between users. [#86662] |
| security fix | Hardened origin validation on classic app multiplayer and /api/wsTest WebSocket connections to reject lookalike domains and published app hosts. [#86674] |
| security fix | Validated the subdomain cookie before /auth/login and /iframeembed redirect to it, preventing redirects to arbitrary hosts on self-hosted instances. [#86675] |
| security fix | Fixed a path injection vulnerability in Code Executor that could allow a crafted job ID to escape the job directory or inject nsjail configuration. [#86756] |
| security fix | Patched piscina against unsafe option inheritance that could enable remote code execution. Resolves CVE-2026-102992. [#86817] |
| security fix | Patched @grpc/grpc-js against TLS peer certificate and error message exposure flaws. Resolves CVE-2026-101915 and CVE-2026-101916. [#86818] |
| security fix | Patched hono against an XSS vulnerability in server-rendered JSX. Resolves CVE-2026-93981. [#86819] |
| security fix | Patched dompurify against two sanitization flaws. Resolves GHSA-p98j-92pf-mc4p and GHSA-6688-9rhm-gjv2. [#86820] |
| security fix | Patched brace-expansion against stack exhaustion and quadratic-time brace expansion. Resolves CVE-2026-102276, CVE-2026-102278, and CVE-2026-102277. [#86822] |
| security fix | Updated axios to 1.20.0, including the default workflows library, patching prototype pollution, proxy and redirect bypass, denial-of-service, and header injection flaws. Resolves GHSA-x97p-jq2g-jp4f, GHSA-m8m8-qj5v-23w3, GHSA-vh66-26gq-q6x8, GHSA-9fr6-4gfg-395g, GHSA-r4gj-5m52-g5wh, GHSA-3pq3-5fj3-cg6v, GHSA-44g4-m2mj-wpvx, GHSA-c29m-xwm3-cm6r, GHSA-mghh-pgcx-3jjj, GHSA-542g-h47m-68v8, GHSA-4hqw-qxg8-jxx2, and GHSA-j8rh-479h-cp32. [#86823] |
| security fix | Patched moment to 2.31.0 against loading files outside the locale directory through moment.locale(). Resolves CVE-2026-17495. [#86824] |
| security fix | Patched basic-ftp against a denial of service in directory listing parsing. Resolves CVE-2026-102990. [#86825] |
| security fix | Patched probe-image-size against a denial of service in SVG parsing. Resolves CVE-2026-104861. [#87027] |
| security fix | Patched geopy in the Python sandbox against a regular expression denial of service. Resolves CVE-2026-77387. [#87032] |
| security fix | Updated the esbuild version pinned in new app builder projects to 0.28.1. Resolves GHSA-g7r4-m6w7-qqqr. [#87073] |
| security fix | Revoked existing sessions when an email and password account is first linked to Google sign-in. [#87080] |
| security fix | Fixed MCP resource TypeScript execution reading files from the Retool server. [#87255] |
| security fix | Hardened the new app builder editor against writes to protected files through non-canonical paths. [#87304] |
| security fix | Hardened Code Executor so job values can no longer alter its sandbox configuration. [#87316] |
| security fix | Patched @fastify/busboy against multipart header parsing flaws. Resolves GHSA-gxm5-99cw-xjw9 and CVE-2026-19481. [#87337] |
| security fix | Removed unused GraphQL language service packages, eliminating vulnerable @graphql-tools dependencies. Resolves GHSA-6fw5-9hq8-w87g and GHSA-7mx3-vvmw-hjmv. [#87338] |
| security fix | Patched the OpenTelemetry database instrumentation packages used by Sentry so they no longer record database usernames in trace spans. Resolves GHSA-qqmp-wf37-98f9. [#87339] |
| security fix | Patched fsspec in the Python sandbox against remote code execution. Resolves GHSA-27vj-qcqg-25rc. [#87340] |
| security fix | Patched @opentelemetry/instrumentation-pg so tracing spans no longer include the database username. Resolves GHSA-qqmp-wf37-98f9. [#87343] |
| security fix | Updated react-router in the app builder sandbox to 7.18.4, patching multiple vulnerabilities. Resolves CVE-2026-33244, CVE-2026-33245, CVE-2026-34077, CVE-2026-40181, CVE-2026-42211, CVE-2026-42342, CVE-2026-53663, CVE-2026-53666, CVE-2026-53667, CVE-2026-53669, and CVE-2026-55685. Also resolves GHSA-2j2x-hqr9-3h42, GHSA-f22v-gfqf-p8f3, and GHSA-qwww-vcr4-c8h2. [#87539] |
| security fix | Updated music-metadata to 11.16.1 and its file-type dependency to 21.3.4 to patch denial-of-service flaws in audio file parsing. Resolves CVE-2026-32256, CVE-2026-107387, CVE-2026-107388, CVE-2026-107389, CVE-2026-107391, CVE-2026-107392, and CVE-2026-31808. [#87694] |
| security fix | Required resource edit access to run client-supplied Query Library queries in the query playground. [#87759] |
| security fix | Fixed a cross-site scripting vulnerability in the app runtime by checking the origin of the runtime.html message handoff. When SANDBOX_DOMAIN is set, runtime pages now return 404 on other hostnames. Set DISABLE_SANDBOX_HOSTNAME_CHECK to opt out. [#87801] |
| security fix | Updated http-proxy-middleware to 2.0.10 to patch host and path router matching. Resolves CVE-2026-55602. [#87947] |
| security fix | Replaced the ip package with ipaddr.js and expanded loopback detection to block app requests to Retool's own host through IPv6, IPv4-mapped, and unspecified addresses. Resolves CVE-2024-29415. [#87950] |
| security fix | Updated markdown-it and linkify-it to patch denial-of-service vulnerabilities. Resolves CVE-2026-2327, CVE-2026-48988, CVE-2026-48801, CVE-2026-59887, GHSA-253c-mchw-3w2r, GHSA-38c4-r59v-3vqw, GHSA-6v5v-wf23-fmfq, GHSA-22p9-wv53-3rq4, and GHSA-v245-v573-v5vm. [#87956] |
| security fix | Updated react-router to 7.18.4 in the frontend, patching 12 advisories. Resolves CVE-2026-33244, CVE-2026-33245, CVE-2026-34077, CVE-2026-40181, CVE-2026-42211, CVE-2026-42342, CVE-2026-53663, CVE-2026-53666, CVE-2026-53667, CVE-2026-53669, CVE-2026-55685, and GHSA-qwww-vcr4-c8h2. [#87957] |
| security fix | Upgraded OpenTelemetry to the 2.x SDK, patching @opentelemetry/propagator-jaeger. Resolves CVE-2026-59892. [#87959] |
| security fix | Disabled eval in the mobile web PDF viewer to prevent code execution from crafted PDFs. Resolves CVE-2024-4367. [#87971] |
| security fix | Updated fast-folder-size in the Code Executor to remove the vulnerable decompress dependency. Resolves CVE-2026-10732, CVE-2026-39243, CVE-2026-101894, and CVE-2026-53486. [#87990] |
| security fix | Replaced the abandoned hoek package with @hapi/hoek 9 to patch a prototype pollution vulnerability. Resolves CVE-2020-36604. [#87992] |
| security fix | Patched @tootallnate/once by forcing version 2.0.1 across the backend and Code Executor environments. Resolves CVE-2026-3449. [#87993] |
| security fix | Updated the mobile app bundler to remove image-size 1.2.1 and patch a denial-of-service vulnerability. Resolves CVE-2025-71329, CVE-2025-71330, and GHSA-5p2g-fcmc-qvqq. [#87996] |
| security fix | Fixed the app builder publish flow accepting release tags and commit values that could write files outside the git server repository. [#88071] |
| security fix | Patched the Datadog Java tracing agent (dd-java-agent) in the database connector and standard images. Resolves CVE-2026-50270. [#88084] |
| security fix | Updated the bundled lodash library in the app JavaScript sandbox to 4.18.1. Resolves CVE-2026-4800. [#88095] |
| security fix | Updated proxy-addr to 2.0.8 to patch IP spoofing through IPv4-mapped IPv6 addresses in trusted proxy matching. Resolves CVE-2026-90711. [#88105] |
| security fix | Patched source-map-js against event-loop denial of service through indexed source-map section offsets. Resolves CVE-2026-93749. [#88106] |
| security fix | Patched nanoid to prevent an infinite loop when generating zero-length IDs. Resolves CVE-2026-67213. [#88109] |
| security fix | Patched handlebars to address JavaScript injection vulnerabilities. Resolves CVE-2026-106444, CVE-2026-106445, and CVE-2026-106446. [#88111] |
| security fix | Patched compression to fix a memory leak when clients disconnect early. Self-hosted instances now serve brotli to clients that accept it. Resolves CVE-2026-87776. [#88113] |
| security fix | Patched @hono/node-server to prevent path traversal in static file serving on Windows. Resolves GHSA-frvp-7c67-39w9. [#88114] |
| security fix | Patched @modelcontextprotocol/sdk (credential leakage to untrusted authorization servers, session and denial-of-service issues). Resolves CVE-2026-104850, CVE-2026-111767, CVE-2026-111768, CVE-2026-111769, CVE-2026-111771, and GHSA-f897-62hf-6gxq. [#88117] |
| security fix | Patched body-parser to enforce size limits when an invalid limit option is set. Resolves CVE-2026-12590. [#88119] |
| security fix | Patched libthrift in the Java database connector to stop infinite loops and unbounded recursion on malformed input. Resolves CVE-2026-43871. [#88121] |
| security fix | Patched aiohttp in the code executor Python sandbox. Resolves CVE-2026-111063, CVE-2026-111064, CVE-2026-111065, CVE-2026-111066, CVE-2026-111748, CVE-2026-111749, CVE-2026-111750, and GHSA-2g87-pp6c-29x5. [#88349] |
| security fix | Patched follow-redirects to stop credential headers leaking to another origin on redirects. Resolves CVE-2026-111755 and CVE-2026-111756. [#88350] |
| security fix | Patched markdown-it to fix denial-of-service issues. Resolves CVE-2026-111759, CVE-2026-111758, and CVE-2026-111766. [#88351] |
| security fix | Patched hono to fix a request path decoding issue in serveStatic. Resolves CVE-2026-111757. [#88352] |
| security fix | Blocked npm registry API requests (/-/ paths) from sandboxes through the agent executor proxy. [#88408] |
| security fix | Restricted removing users from the admin group to the browser so MCP tokens can no longer remove admin group members. [#88409] |
| security fix | Stopped logging Azure Repos credentials when pushing to a repository with basic authentication. [#88415] |
| security fix | Revoked MCP and CLI refresh tokens when a user's password changes, their sessions are reset, or the user is disabled. [#88430] |
| security fix | Configured Node.js and Java connections to use operating system trust stores so revoked eMudhra certificate authorities are rejected. [#88465] |
| security fix | Required Edit access on a resource for MCP resource queries. Users with only Use access now receive a 403 error. [#88493] |
| security fix | Upgraded Node.js from 22.22.2 to 22.23.4 to patch a Brotli decoder out-of-bounds vulnerability. Resolves CVE-2026-111497. [#88524] |
| security fix | Removed revoked eMudhra and Sectigo root certificates from the Java runtimes bundled in Debian-based images. [#88534] |
| security fix | Applied the operating system CA bundle to Python requests in the code executor so revoked certificate authorities, including eMudhra, are no longer trusted. [#88581] |
| security fix | Updated dompurify to 3.4.17. Resolves GHSA-cg2g-xh64-v4q7, GHSA-mrv2-3pqr-j5jr, and GHSA-c6gr-qvv4-5v3f. [#88623] |
| security fix | Updated the telemetry sidecar base image to Alpine 3.24 to remove the compromised eMudhra emSign intermediate CAs. Resolves CVE-2026-91403 and CVE-2026-111943. [#88682] |
| security fix | Patched ip-address to fix quadratic-time IPv6 zone parsing that could block the event loop. Resolves CVE-2026-111997. [#88691] |
| security fix | Patched immutable to prevent denial of service from oversized lists and hash collisions. Resolves CVE-2026-59879 and CVE-2026-59880. [#88692] |
| security fix | Replaced xlsx with @e965/xlsx in the alasql dependency. Resolves CVE-2023-30533, CVE-2024-22363, CVE-2021-32012, CVE-2021-32013, and CVE-2021-32014. [#88693] |
| security fix | Patched csv-parse to fix prototype replacement when the columns option is enabled. Resolves CVE-2026-85063. [#88694] |
| security fix | Patched nodemailer (address parser denial-of-service, file and URL access option bypasses, recipient-domain validation bypasses). Resolves CVE-2026-82659, CVE-2026-110871, GHSA-2x7j-588g-ccc2, GHSA-8m3c-c648-2xjj, GHSA-cc9r-2j5m-2m83, GHSA-wmmp-3585-3rmp, GHSA-6vj9-mwq6-2f5v, GHSA-8vvx-rff5-p5rq, GHSA-v53p-9fqp-m79j, GHSA-8c8m-p3m8-cjg8, GHSA-m943-m63m-w62w, GHSA-85x2-q946-cp5h, GHSA-4ffr-jq9g-5ffx, GHSA-g73g-hqqh-jr95, GHSA-4g23-2xm8-66gc, and GHSA-vvjj-xcjg-gr5g. [#88695] |
| security fix | Patched json5 against prototype pollution through a __proto__ key in parsed input. Resolves CVE-2022-46175. [#88724] |
| security fix | Updated Vite in the app builder sandbox to 8.2.4 to patch multiple vulnerabilities. Resolves CVE-2026-112942, CVE-2026-112943, CVE-2026-112944, CVE-2026-112945, CVE-2026-112946, and CVE-2026-112947. [#88774] |
| security fix | Patched fast-xml-builder against attribute value quote bypass and comment value regex bypass. Resolves CVE-2026-44665 and CVE-2026-44664. [#88813] |
| security fix | Patched ajv to fix a regular expression denial of service with the $data option. Resolves CVE-2025-69873. [#88814] |
| security fix | Patched yaml in the workflows code executor environment. Resolves CVE-2026-33532. [#88817] |
| security fix | Patched nodemailer to fix address parsing that could add or change email recipients. Resolves GHSA-8c8m-p3m8-cjg8, GHSA-m943-m63m-w62w, and GHSA-85x2-q946-cp5h. [#88831] |
| security fix | Patched undici to fix denial-of-service and Subresource Integrity bypass issues. Resolves CVE-2026-109869, CVE-2026-109924, and CVE-2026-109841. [#88832] |
| security fix | Patched body-parser to fix a denial of service from trailing bytes after a JSON body. Resolves CVE-2026-111181. [#88833] |
| security fix | Patched fast-uri. Resolves CVE-2026-110095, CVE-2026-110180, CVE-2026-110306, and CVE-2026-110725. [#88834] |
| security fix | Patched setuptools in the code executor Python sandbox against a path traversal in legacy namespace-package installs. Resolves GHSA-xmj3-9gf7-h52w. [#88836] |
| security fix | Patched sharp in the app builder sandbox runtime. Resolves CVE-2026-96889 and GHSA-wq5f-xc86-pv6w. [#88914] |
| security fix | Disabled git hooks and fsmonitor for all git commands the backend runs, preventing code execution from repository hooks during source control sync. [#88915] |
| security fix | Hardened Azure Repos source control clones by refusing repositories that contain .git entries or symlinks. [#89054] |
| security fix | Stopped logging password hashes in the compromised-password check and fixed DO_HIBP_CHECK=false flagging every login as weak. [#89141] |
| security fix | Patched MCP resource execution so it stays bound to the environment authorized when the execution starts. [#89724] |
| security fix | Patched MCP resource queries so they always run as the authenticated user. [#89726] |
| security fix | Patched the OAuth authorize endpoint to require an authorization token issued after two-factor authentication, so a password alone can no longer create a session. [#90540] |
| security fix | Patched Copy to Space to require the destination to be in the caller's own Spaces cluster. [#90570] |
| 968 changes | |