Self-hosted Retool Edge release 3.391
Release notes for the Self-hosted Retool 3.391 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 closed 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.
Self-hosted Retool 3.391
No longer supported
Edge release notes
Bug fixes, improvements, and other incremental updates across all edge releases in this release.
| Type | Description |
|---|---|
| 3.391.088 changes↑ | |
| security fix | Patched pnpm from 10.16.1 to 10.28.2 to address multiple path traversal, command injection, and lockfile integrity vulnerabilities. Fixes CVE-2025-69262, CVE-2025-69263, CVE-2025-69264, CVE-2026-23888, CVE-2026-23889, CVE-2026-23890, CVE-2026-24056, and CVE-2026-24131. [#76615] |
| security fix | Patched fast-uri to 3.1.2 to address path traversal and host confusion. Fixes CVE-2026-6321 and CVE-2026-6322. [#76911] |
| security fix | Patched fast-xml-parser to 5.7.3 in mobile Lambdas. [#76912] |
| security fix | Patched hono to 4.12.18 to address CSS declaration injection, JWT date validation, and cache poisoning issues. Fixes CVE-2026-44457, CVE-2026-44458, and CVE-2026-44459. [#76913] |
| security fix | Sanitized internal API resource metadata from public MCP resources info responses. [#76928] |
| security fix | Restricted sandbox require to ce-libraries only to prevent escape via Node modules. [#76954] |
| security fix | Blocked dynamic import() in code sandbox via ESM loader hook. [#76989] |
| security fix | Validated and rate-limited unauthenticated public app abuse reports. [#77022] |
| security fix | Patched protobufjs to 7.5.6 and @protobufjs/utf8 to 1.1.1 to address code injection and DoS vulnerabilities. Fixes CVE-2026-44288, CVE-2026-44289, CVE-2026-44290, CVE-2026-44291, CVE-2026-44292, CVE-2026-44293, and CVE-2026-44294. [#77139] |
| security fix | Patched protobufjs-cli to 1.2.1 to fix OS command injection and code injection from crafted schema names. Fixes CVE-2026-42290 and CVE-2026-44295. [#77141] |
| security fix | Added canUserChangeGridAccess check to grid ACL endpoints to prevent unauthorized enumeration. [#77148] |
| security fix | Restricted grid ACL endpoints to groups only when userListAccess is disabled, preventing user enumeration. [#77164] |
| security fix | Excluded vulnerable pac4j from hive-jdbc and hive-service. [#77259] |
| security fix | Patched io.opentelemetry to 1.62.0. Fixes CVE-2026-45292. [#77314] |
| added | Added an extended thinking toggle for OpenAI models in Agents advanced configuration. [#74662] |
| added | Defaulted newly created workflows to Python 3.14. [#75735] |
| added | Added rawAuthorizationScheme, Google serviceAccount, and session auth types to REST API resources via the Retool API. [#76858] |
| added | Added HOST_RESERVED_MEMORY and related environment variables to fine-tune js_executor Memory Budget Manager. [#76930] |
| added | Added Google Drive API documentation link to the query editor. [#77048] |
| added | Added space-specific usage charts for AI credits and workflow runs. [#77151] |
| added | Added cross-space audit log explorer for root org admins. [#77207] |
| fixed | Hid the Create folder button for users without edit access to the root workflow folder. [#75893] |
| fixed | Updated query caching so resources with user-specific parameters do not share results across users. [#76037] |
| fixed | Supported the Tab key when adding invite emails in the share modal. [#76504] |
| fixed | Added missing agent models to the analytics registry. [#76551] |
| fixed | Fixed initial prompt suggestions briefly persisting between tabs in Assist. [#76631] |
| fixed | Disposed gRPC inner cache entries on eviction to release pooled clients. [#76684] |
| fixed | Passed experimentsId to dbconnector process isolation flag checks for deterministic evaluation. [#76781] |
| fixed | Resolved deprecated AI models in handleAIQueryExecution for accurate billing. [#76784] |
| fixed | Fixed workflow import for users with individual resource permissions. [#76854] |
| fixed | Validated missing JDBC connection strings to return a controlled error instead of crashing. [#76883] |
| fixed | Raised waitForPort timeout for embedded test servers. [#76899] |
| fixed | Stabilized MultiplayerContext waitForSynced test flake. [#76901] |
| fixed | Allowed non-admin users with manage_source_control permission to set release manifests. [#76922] |
| fixed | Handled empty usage service license keys. [#76923] |
| fixed | Auto-completed secrets in the Query Library resource form. [#76947] |
| fixed | Used per-request timeout for undici TCP connect in REST API queries. [#76951] |
| fixed | Fixed test setup race condition for bastion. [#76953] |
| fixed | Ensured audit trails queries route to the audit trails database instead of the application database. [#76956] |
| fixed | Sent usage analytics requests as POST instead of GET. [#76967] |
| fixed | Adjusted Assist chat scrollbar position. [#76999] |
| fixed | Fixed REST API queries using native fetch by aligning undici Content-Type inference and decompression. [#77003] |
| fixed | Displayed external users without an email correctly in groups settings. [#77011] |
| fixed | Gated billing usage tab on the NamedSeats plan feature. [#77013] |
| fixed | Rounded AI credits usage metrics to the nearest integer. [#77014] |
| fixed | Scoped billing metrics to the manage billing permission. [#77017] |
| fixed | Raised billing chart tooltip above the selector to fix overlap. [#77020] |
| fixed | Used the plugin-aware resource registry for editor-type lookups. [#77029] |
| fixed | Forwarded child process stdio to logger after WarmProcPool checkout. [#77036] |
| fixed | Used the manifest's serverUrl to build URLs for unlisted REST operations. [#77046] |
| fixed | Fixed seatUsage to count external users and exclude pending invites. [#77062] |
| fixed | Hid usage chart over time when filtering on a space. [#77074] |
| fixed | Added line-buffering and structured log parsing to HttpProxyCache stdio handlers. [#77085] |
| fixed | Soft-failed the permissions endpoint on orphaned role grants to avoid 500 errors. [#77091] |
| fixed | Fixed the Agent Chat component displaying "Agent" instead of the agent name for users with use-only access. [#77098] |
| fixed | Fixed a workflow editor crash for non-editor users on protected workflows. [#77110] |
| fixed | Added missing model pricing families for GPT-3.5-turbo, GPT-4-turbo, Claude 3.5 Sonnet/Haiku, and GPT-5. [#77114] |
| fixed | Gated personal folder ID load check behind the personalAppFoldersEnabledForOrg experiment. [#77117] |
| fixed | Capped pagination limit at 100 in MCP list tools. [#77121] |
| fixed | Propagated NODE_EXTRA_CA_CERTS to process-isolated dbconnector children. [#77133] |
| fixed | Fixed empty config variables in retoolContext when changing environments. [#77153] |
| fixed | Fixed V2 resource permissions for Retool AI resource on org creation. [#77177] |
| fixed | Added landing page to V2 RBAC group settings. [#77211] |
| fixed | Scoped child-space billing usage metrics to the correct space. [#77241] |
| fixed | Added all Google Drive scopes from OAS to the resource settings. [#77243] |
| fixed | Stopped DBCONNECTOR_BODY_PARAMS_TYPE_ERROR warning spam on Google Drive queries. [#77268] |
| fixed | Fixed Retool AI resource permissions at org creation. [#77304] |
| improved | Auto-wired htmlFor, id, aria-describedby, aria-invalid, and aria-required on Field components for improved accessibility. [#76639] |
| improved | Centralized MCP pagination LIMIT_SCHEMA with a token-conscious default of 10. [#76734] |
| improved | Fixed universal access enumeration and removed precompute overhead in V2 permissions path. [#76836] |
| improved | Broadened REST API getaddrinfo ENOTFOUND error classification to user errors. [#77008] |
| improved | Parallelized sequential async calls in the permissions module. [#77026] |
| improved | Dropped redundant RESOURCE_TYPE_KEYWORDS precompute in the resource catalog. [#77032] |
| improved | Eagerly spawned replacement processes in WarmProcPool to keep the pool filled. [#77033] |
| improved | Dropped includeChildObjects in getGroupPagesV2, getGroupWorkflowsV2, and getGroupScreensV2 for faster permission checks. [#77059] |
| improved | Parallelized folder fetches in the getPermissions V2 path for better permissions performance. [#77118] |
| improved | Omitted empty value parameters from OAuth URLs. [#77143] |
| improved | Surfaced JS Executor out-of-capacity errors with clearer messaging. [#77226] |
| improved | Reduced code editor latency by replacing createAnalysisProject with a singleton scope. [#77262] |
| improved | Improved performance of /api/organization/permissions by consolidating queries in PermissionsBundleDao. [#77264] |
| changed | Updated the Sentry Frontend SDK to v8. [#77158] |
| removed | Removed the secretsManagerMultiConfig flag and the legacy secrets UI. [#76609] |
| removed | Removed the sanitizeCustomAuthScope feature flag after rollout. [#76714] |
| removed | Removed the Python upgrade feature flag for workflows after rollout. [#76924] |
| removed | Removed the dbConnLambdaV3 feature flag, making the V3 Lambda integration the only path. [#76983] |
| removed | Removed the useJsExecutor feature flag and code_executor routing branches after JS Executor migration. [#76990] |
| removed | Removed the /executeServerlessFunctionV2 endpoint and evalServerExecutor from code_executor. [#76991] |
| removed | Removed unlaunched resource credentials endpoints. [#77131] |
| 88 changes | |