Self-hosted Retool Edge release 4.78
Release notes for the Self-hosted Retool 4.78 edge release.
Releases on the Edge channel occur weekly. Each release occurs one week after the equivalent release for cloud-hosted Retool.
Edge releases are available for organizations that want the latest features or to use private beta functionality. Retool recommends most organizations use Stable releases unless you have a specific need for Edge releases and can keep your deployment up-to-date.
Retool supports only the most recent release on the Edge channel. As Edge releases are weekly, bug fixes and improvements are included in the next release. All previous releases are then considered deprecated.
Retool's main documentation site reflects the latest Edge release. Since Edge updates weekly and only the most recent release is supported, the docs you're already browsing apply to this release — there's no separate version to switch to.
Self-hosted Retool 4.78
Latest releaseCurrently supported
Edge release notes
Bug fixes, improvements, and changes in this release.
| Type ↑ | Description ↕ |
|---|---|
| 4.78.082 changes↑ | |
| 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 file renaming by the AI agent and manual frontend and backend file and folder creation in the app builder. [#87490] |
| added | Added support for multi-instance releases of apps in the app builder when using GitLab for source control. [#87053] |
| added | Added Bitbucket support for multi-instance releases of app builder apps in Source Control. [#87413] |
| added | Added MCP tools for administrators to list, create, update, and delete roles, list role grants, and list permission scopes. [#87505] |
| 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 to enable admins to create, rename, and delete permission groups. [#87422] |
| 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 a folder_id query parameter to GET /api/v2/workflows to list only the workflows in a folder. [#86575] |
| added | Added the POST /api/embed-url/external-user/revoke endpoint to end a single Retool Embed session before it expires. [#87231] |
| 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 support for using MCP resources in backend functions in the app builder. [#87554] |
| 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 support for the Gemini 4 Argon model in Google Gemini and Vertex AI resources and in the app builder. [#87697] |
| added | Added the us and eu multiregion locations to the Google Vertex AI resource location picker. [#88100] |
| added | Enabled Claude Sonnet 5.5, GPT-6 Sol, and GPT-6.1 Sol as models in the app builder. [#87373] |
| 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 release creation failing with the error Element not protected for source control elements stuck in a pending unprotect state. [#87182] |
| 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 the app builder editor sometimes showing a loading spinner indefinitely on first load. [#87614] |
| 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 Copy verification log button reporting no log after the permissions migration. [#87438] |
| fixed | Fixed the Code Executor leaking file descriptors from abandoned warm workflow jobs, which could exhaust descriptors on long-running instances. [#87399] |
| fixed | Fixed Ask AI in generate mode not showing errors when a query generation request failed. [#87707] |
| fixed | Fixed token counting and embedding truncation failing on text that contains the literal endoftext special-token marker. [#87723] |
| fixed | Fixed source control Deployment Details to show app builder app names and repo paths instead of UUIDs for failed syncs. [#87293] |
| fixed | Fixed AWS Secrets Manager ignoring the configured region when authenticating with an IAM role ARN. [#87713] |
| fixed | Fixed Notion queries failing when the Notion-Version header was not set by sending 2022-06-28 by default. [#87840] |
| fixed | Fixed auto-height ListView components in classic apps not scrolling at some browser zoom levels and display scales. [#87762] |
| 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 detail pane reloading when you click the left pane of a split-screen tablet tab in the mobile app editor. [#87410] |
| fixed | Fixed localStorage.setValue() in classic apps overwriting values written by other browser tabs. [#87665] |
| fixed | Fixed app builder Preview failing with a missing export error after a Retool CLI push added a backend function. [#85151] |
| fixed | Fixed an error when clicking a file icon in the merge branch editor for protected apps. [#87714] |
| improved | Improved the workflow log viewer to load block results in pages so large runs no longer overload the server. [#85540] |
| 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 performance of long chat histories in the app builder by rendering only visible messages. [#87567] |
| improved | Improved app builder chat responsiveness and reduced memory use while streaming long replies. [#87625] |
| improved | Improved app builder editor performance and memory use while the agent streams large file writes. [#87615] |
| 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 Retool CLI push validation speed for large pushes to the app builder. [#87954] |
| improved | Improved the app builder to show an error toast when a manual Code tab edit is refused and not saved. [#87524] |
| 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 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 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 the error message shown when a bulk user invitation exceeds the daily invite limit. [#88022] |
| changed | Enabled permissions v2 by default on self-hosted instances after an organization completes its permissions migration. [#87893] |
| 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 permissions role creation and the role editor to prevent mixing per-object and universal object scopes in one role. [#87805] |
| changed | Changed PATCH /api/v2/role_permissions/roles/:id to return a 400 error when updating an object-scope system role. [#87799] |
| 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 S3 read and download queries to always stream responses. Removed the S3 object streaming toggle from Beta settings. [#87594] |
| changed | Changed source control sync to use external Git commit messages in version history for protected apps in the app builder. [#87387] |
| changed | Changed the Retool CLI public beta card on the Home page to show by default. [#87553] |
| changed | Renamed the Updated App Builder AI provider setting to AI App Builder in AI resource forms and AI settings. [#87552] |
| changed | Changed the role create, update, and delete API endpoints to accept MCP tokens with the mcp:admin grant. [#87689] |
| 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 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 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 | Published the latest tag for the js-executor-service and agent-sandbox-service multi-arch images on Docker Hub. [#87764] |
| security fix | Required resource edit access to run client-supplied Query Library queries in the query playground. [#87759] |
| 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 the app builder publish flow accepting release tags and commit values that could write files outside the git server repository. [#88071] |
| security fix | Disabled eval in the mobile web PDF viewer to prevent code execution from crafted PDFs. Resolves CVE-2024-4367. [#87971] |
| 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 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 | 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 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 | 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 | 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 | Updated http-proxy-middleware to 2.0.10 to patch host and path router matching. Resolves CVE-2026-55602. [#87947] |
| 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 | Replaced the abandoned hoek package with @hapi/hoek 9 to patch a prototype pollution vulnerability. Resolves CVE-2020-36604. [#87992] |
| 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 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] |
| 82 changes | |