Skip to main content

Self-hosted Retool Edge release 4.51

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.

Documentation for this release

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.51

Latest releaseCurrently supported

Edge release notes

Bug fixes, improvements, and changes in this release.

TypeDescription
4.51.0138 changes
addedAdded a warning dialog that lists which workflows will stop running before you enable data access enforcement on a resource. [#83385]
addedAdded 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]
addedAdded a dismissible banner on the Resources list page to help admins discover data access policies. [#83587]
addedEnabled multi-instance releases by default for apps built with the new app builder. [#83941]
addedAdded 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]
addedAdded 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]
addedAdded a What's New card promoting data access policies to the home page. [#83589]
addedAdded 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]
addedAdded an Always show scrollbars option to the appearance settings of the Table and legacy Table components. [#83738]
addedAdded the ability to rename a git branch from the Version History panel in the new app builder. [#82875]
addedAdded a warning to the RetoolDB connection string modal about configuring session-level options through external clients. [#84214]
addedAdded the branch author's name to each branch in the new app builder's Version History panel. [#84163]
addedAdded support for the Authorization Code Grant with PKCE OAuth2 flow on GraphQL resources. [#84242]
addedAdded a Test connection button to Notion resources. [#84241]
addedAdded a read-timeout backstop for streamed query responses so a hung connector stream can no longer leave a query waiting indefinitely. [#84230]
addedAdded 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]
addedAdded the ability for the AI agent to delete folders in a single step, not just individual files. [#83996]
addedAdded 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]
fixedFixed low AI credits email notifications so an org receives at most one per billing period instead of one after every credit top-up. [#83484]
fixedFixed an issue where embedded apps could get stuck on the loading spinner and never finish loading. [#83290]
fixedFixed adaptive thinking not being enabled for claude-sonnet-5 requests in the new app builder. [#82038]
fixedFixed the bundled AI model registry so google/gemini-3.6-flash correctly exposes its reasoning effort levels and token budgets. [#83571]
fixedFixed the AI agent's theme-switching instructions so it stops trying to read a nonexistent /frontend/orgTheme.css file. [#83516]
fixedFixed OpenAPI server variables to accept template strings and dynamic values such as config variables and current_user references. [#83515]
fixedFixed uploaded chat attachments to be deleted from the sandbox when removed before the prompt runs. [#83219]
fixedFixed the Check out branch control to stay disabled while the agent is working, preventing a branch switch mid-turn. [#83197]
fixedReplaced 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]
fixedFixed 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]
fixedFixed an issue where app builder agent requests using a model outside the built-in set could be silently dropped instead of completing. [#82656]
fixedFixed spec-backed REST API queries against OpenAPI 3.0 specs that declare relative server URLs. [#83675]
fixedFixed source control protection status not being fully removed when renamed apps with naming conflicts are unprotected. [#83660]
fixedFixed queries against Jira and other OpenAPI resources that omit a server URL to use the resource's configured server instead of failing. [#83645]
fixedFixed 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]
fixedFixed MCP OAuth discovery URLs to stay on the requested host instead of pointing at an internal address. [#83574]
fixedFixed the app builder AI agent to persist prompt context between turns so its prompt cache is reused instead of missed on every turn. [#83551]
fixedFixed Action Center pagination so requesting the next page returns only that page instead of the rest of the list. [#83537]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed workflow triggers failing with a path not allowed error when run, queried for schema, or checked for status from a sandboxed workflow. [#83918]
fixedFixed 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]
fixedFixed 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]
fixedFixed long-running JavaScript code executions being killed by a deployment restart before they could finish within the expected 5 minute window. [#83807]
fixedFixed 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]
fixedFixed source control content fetching to return empty lists instead of errors for missing paths in Bitbucket, Azure Repos, and CodeCommit. [#83743]
fixedFixed source control deployment creating duplicate release manifests when the manifest fetch fails. [#83733]
fixedFixed source control deployment failing when duplicate app UUIDs exist in the external repository. [#83685]
fixedFixed the native dropdown arrow rendering off-theme and pinned too far to the right on <select> controls in the new app builder. [#83650]
fixedFixed transient connection errors during source control sync with Azure Repos, adding automatic retries instead of failing the sync outright. [#83622]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed the mobile app's DatePicker component clipping the last character of the selected date on Android. [#83380]
fixedFixed 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]
fixedFixed PATCH /api/scim/v2/Groups/:groupId returning a 500 error instead of skipping a user sid that belongs to a different organization. [#84013]
fixedFixed POST and DELETE /api/pages/:pageId/favorite returning a 500 error instead of a 422 error for a non-integer pageId. [#84002]
fixedFixed 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]
fixedFixed 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]
fixedFixed a bug where POST /api/sendVerificationEmail returned an HTTP 500 error instead of an HTTP 400 error when no firstName was available. [#83971]
fixedFixed 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]
fixedFixed 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]
fixedFixed low-contrast dropdown text in dark mode by deriving popover and accent text color from WCAG contrast instead of a fixed luminance cutoff. [#83166]
fixedFixed a console error that could appear when a Retool React app's sandbox was not yet ready to report remote ref status. [#84114]
fixedFixed a Retool React agent session that could hang instead of recovering after repeated sandbox authorization errors. [#84092]
fixedFixed an issue where agent sessions could get stuck reconnecting to their sandbox and never finish loading. [#84077]
fixedExcluded users in an org's External Users group from the in-product NPS survey. [#84064]
fixedFixed the /api/checkReadiness endpoint to return a 503 status code instead of 500 when the instance is not ready. [#84031]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed several database connector streaming paths that had no maximum response size enforcement. [#84231]
fixedFixed a 500 error that could occur when opening a public app. [#84227]
fixedFixed a delay before a queued message appeared in the new app builder's chat when starting a new project. [#84222]
fixedFixed the new app builder's third-party license check to accept license names written in prose form. [#84215]
fixedFixed Permissions v1 so one group's environment-level resource grant no longer overrides another group's grant. [#84087]
fixedFixed ResourceDao.getByNames so it always scopes results to the requesting organization, preventing a code path from returning another organization's resources. [#84030]
fixedFixed AI usage tracking in the new app builder to report OpenAI cache-write tokens instead of always recording zero, correcting a cost undercount. [#84025]
fixedFixed the publish button in the new app builder to stay disabled for protected apps when a new branch has no unpublished changes. [#83987]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed 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]
fixedFixed a server error when running workflow REST API query blocks on resources that require a custom-auth login. [#84327]
fixedFixed JSON user attribute values overlapping adjacent rows in Settings and displaying as [object Object] in a user's attribute assignments. [#84303]
fixedFixed the in-app support breakage report form pointing to an outdated URL. [#84295]
fixedFixed 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]
fixedFixed links and redirects in the new app builder failing to open in the top browser frame on self-hosted and custom domain deployments. [#84265]
fixedFixed 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]
fixedFixed duplicate role-grant requests returning a 400 validation error instead of a 409 conflict with a clear message. [#84238]
fixedFixed a bug where a malformed screen ID in a role-grant API request returned a 500 error instead of a 404. [#84218]
fixedFixed 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]
fixedFixed a bug where dropping a List View component inside another List View could throw an error and fail to render. [#83123]
improvedImproved the agent to process every queued prompt in a single turn instead of one at a time. [#83188]
improvedImproved 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]
improvedImproved 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]
improvedReduced startup latency overhead for JavaScript query execution by polling more frequently for the sandbox memory monitor to attach. [#84111]
improvedImproved new branches in the new app builder to default their description to "New branch" instead of appearing blank. [#84162]
improvedImproved the governance policy editor to make Create the primary action for a new policy. [#84137]
improvedImproved 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]
improvedImproved the permission-denied message on the new resource page so the toast persists through the redirect to the resources list. [#84210]
improvedImproved the rename and move app modals with tighter spacing and a note that the change appears after the source control deployment finishes. [#84142]
improvedImproved 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]
improvedImproved 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]
improvedImproved 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]
changedChanged 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]
changedChanged 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]
changedDisabled legacy MSSQL connector versions by default for self-hosted. [#83728]
changedChanged 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]
changedUpdated the publish modal's error message to say backend function instead of serverless function, matching the rest of the IDE. [#84357]
changedChanged the MSSQL connector deprecation banner to past tense now that the deprecation date has passed. [#84302]
removedRemoved the Custom API Endpoint field for BigQuery resource connections, previously used to route traffic through a Private Service Connect endpoint. [#83456]
removedRemoved the Submit a prompt item from the Help menu. [#84283]
removedRemoved the ability to create or duplicate Vertica resources. [#84234]
deprecatedDeprecated BigID resources: organizations can no longer create or duplicate a BigID resource, though existing ones can still be edited or deleted. [#84048]
security fixPatched 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 fixPatched a Java database connector dependency to address CVE-2026-49844. [#83454]
security fixFixed a security vulnerability in a third-party networking dependency used for proxy connections (CVE-2026-69192, CVE-2026-42338). [#83198]
security fixFixed a security vulnerability in the Java database connector (CVE-2025-3588). [#83196]
security fixFixed a security vulnerability in the DOMPurify sanitization library. Resolves GHSA-55q2-fjhq-7xh7. [#82897]
security fixFixed a security vulnerability in the Databricks JDBC connector. [#83568]
security fixFixed a vulnerability that could let a crafted query bypass data access policy enforcement on certain resources. [#83535]
security fixPatched Apache HttpComponents libraries used by the Java database connector to address multiple vulnerabilities (CVE-2026-54399, CVE-2026-54428, CVE-2026-64607). [#83220]
security fixFixed a security vulnerability in outbound request filtering used by the image proxy (CVE-2025-57814). [#83203]
security fixPatched 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 fixPatched a third-party ID-generation dependency to address three vulnerabilities. Resolves CVE-2026-67213, CVE-2026-67214, and CVE-2026-73086. [#82896]
security fixPatched BouncyCastle used by the Java database connector to address three critical vulnerabilities. [#83450]
security fixFixed source control credentials being exposed in error logs during git clone and fetch operations. [#83916]
security fixFixed an authorization issue that could allow a user without the required workflow permissions to view workflow run logs or export a workflow. [#83885]
security fixFixed a Postgres integration issue that could leak information through SQL error details when data access enforcement restricted a query. [#83842]
security fixFixed unauthorized access to app source code through git server endpoints for users with only read access. [#84089]
security fixFixed a vulnerability where the Presto and Vertica connectors could be used to reach unintended JDBC drivers on the shared classpath. [#84232]
security fixFixed a security vulnerability related to workflow run identity handling. [#83524]
security fixFixed 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 fixFixed a security vulnerability related to draft folder permissions. [#84246]
security fixFixed a bug where a failed data-security policy rewrite could return internal error details to the client instead of a generic message. [#84032]
138 changes