n8n@2.38.0
Pre-release
Pre-release
·
268 commits
to release/2.38.0
since this release
2.38.0 (2026-09-08)
Bug Fixes
- Add parameter binding for mongodb sort and projection (#37335) (292f442)
- ai-builder: Add case for agent artifacts in AIA preview tab bar (#37141) (ede265d)
- ai-builder: Add several tools of the same provider via UI (#37212) (fd3a51c)
- ai-builder: Emit tool call events for Workflow, HTTP Request and Code tools (#37044) (7e81610)
- ai-builder: Fix session timeline/trace not showing on preview dock when full screen (#36930) (80ff0f3)
- ai-builder: Preserve managed n8n credits when building workflows (#37198) (0fbc526)
- ai-builder: UI tweak to prevent overflowing text on err callout when on Agent Preview (#37615) (c2e8d02)
- Alibaba Cloud Node: Use async image-generation for Wan 2.6 (#37060) (69991a5)
- AMQP Trigger Node: Reattach the receiver link when the broker detaches it (#37431) (ddf6534)
- Anthropic Chat Model Node, AI Agent Node: Send disabled thinking to the provider and parse content-block output (#37954) (309fa8d)
- API: Adapt binary data endpoint (#36974) (c339069)
- API: Check publish permission when a workflow save republishes (#37264) (485e370)
- API: Improve config handling on instance-settings endpoints (#36680) (a53a75d)
- API: Resolve discover scopes from the request token grant (#37225) (8342a46)
- API: Skip projectRelations eager-load in GET /credentials (#37138) (b3a77b0)
- Chat Trigger Node: Apply authentication to test webhook requests (#37296) (122ee6d)
- Chat Trigger Node: Fix singular copy on the connect bar (#37945) (369c9e2)
- Chat Trigger Node: Re-authenticate hosted chat on session change (#37868) (64ba49d)
- Chat Trigger Node: Respect private chat setting in tests (#37406) (0e1901f)
- Check constructor-assigned and type-asserted node descriptions (#37523) (e23ee05)
- Code Node: Keep identity and reporting fields when wrapping task runner errors (#37490) (b0550cb)
- Copy glibc into distroless runners image as a matched pair (#37149) (b54c9b6)
- core: Add a timeout to the S3 startup connection check (#37245) (2586e21)
- core: Allow a domain-restricted credential to work in its own node (#37200) (720f397)
- core: Allow HashiCorp Vault external secrets to read a KV v2 sub-path (#37748) (fed5d70)
- core: Allow webhook nodes to set Set-Cookie response headers (#37883) (6828320)
- core: Always redact OTel header values in settings responses (#37283) (4b0de25)
- core: Apply proxy environment variables consistently across packages and processes (#37124) (4b9dc5a)
- core: Bind OAuth token grants to their approved resource (#37122) (380788f)
- core: Cap task runner task timeouts to the graceful shutdown window (#37651) (9a64820)
- core: Complete a scheduled occurrence as not dispatched when its workflow is unpublished (#37721) (29c7d9f)
- core: Detect invalid Slack Block Kit payloads in AI Assistant builds (#37217) (b9342a5)
- core: Ensure running job cleanup when a workflow run rejects (#37621) (51ac147)
- core: Execute multi-input nodes re-fired through a loop-back edge in legacy order (#37561) (903fe57)
- core: Fix Azure OpenAI classic and Foundry credential setup and execution for agents (#37251) (731ea42)
- core: Fix evaluation runs failing when the Evaluation Trigger feeds the entry node (#36975) (72283bd)
- core: Fix scripts/generate-types export path (#32071) (106166a)
- core: Forward all output branches when a waiting webhook node resumes (#31714) (7c21f4b)
- core: Gate browser credential creation on its own permission (#36931) (532911c)
- core: Give every simulated node at least one plausible item (#37557) (918067a)
- core: Grant connect access for globally shared end-user credentials (#36992) (aaf0a7e)
- core: Harden agent workflow tools against unpublished, missing, or incompatible workflows (#37772) (1994332)
- core: Hide instance MCP OAuth discovery when MCP access is disabled (#36726) (9768c1b)
- core: Keep a serving external secrets provider active when its replacement fails (#37781) (217c7b3)
- core: Keep abandoned tool-call suspensions visible in AI Assistant thread history (#36737) (052c30e)
- core: Keep AI Assistant workflow builds honest about their project (#37177) (7fe438e)
- core: Keep an existing community package directory when a fresh install fails (#36964) (ad15ba4)
- core: Keep Instance AI data-table queries targeted while diagnosing (#37489) (df4d30b)
- core: Keep the API version in the Gemini base URL for agent models (#37239) (c2f636b)
- core: List the valid techniques when get_workflow_best_practices rejects input (#37580) (53b1ad7)
- core: Make pending agent creation and thread binding idempotent (#37074) (085a7a9)
- core: Make scoped workspace path errors actionable for agents (#37887) (03e1793)
- core: Mark retired node types as deprecated in their workflow-sdk type definitions (#37628) (cf0ef47)
- core: Only record sub-node error metadata for nodes that get a run (#37256) (8fcabd6)
- core: Prefer service-specific credentials for HTTP requests (#37844) (500ea39)
- core: Preserve binary content in agent tool results (#37206) (b54500d)
- core: Prevent Anthropic agent threads from breaking permanently and keep run errors visible (#37640) (dc5f420)
- core: Prevent OpenTelemetry disable from failing when OTLP collector is unreachable (#37203) (5dd2454)
- core: Prevent Supabase vector store node auth client timer leaks (#37054) (ad24a48)
- core: Re-check user tool access on agent runtime cache hits (#37401) (6e9c3e2)
- core: Redirect failed OIDC logins to the sign-in page (#37428) (3e09299)
- core: Report and reconcile agent channel startup failures (#36578) (6b0de0d)
- core: Report the provider response when a chat model returns no choices (#37959) (49e7821)
- core: Report what credential setup actually selected (#37019) (ef13ad0)
- core: Respond with an error when a webhook execution ends before the Respond to Webhook node runs (#37006) (f9814b7)
- core: Restore mutating array methods on $json data in expressions (#37172) (dcb5736)
- core: Return 503 when the AI assistant service is unreachable (#37957) (36426a8)
- core: Return a single not-found message when disconnecting a credential (#37292) (bde05e0)
- core: Reuse native Agent channel capabilities (#36849) (e4edf89)
- core: Route OAuth2 token requests through environment proxies in every process (#36996) (5266ce3)
- core: Route secrets pasted in AI chat to real credential forms (#37277) (6cc8c59)
- core: Scope active workflow IDs to the requesting user's projects (#37326) (b557e90)
- core: Share one time budget across nested expression evaluations (#37330) (99c9e79)
- core: Split Instance Settings permissions into granular custom-role options (#36802) (1f390cd)
- core: Stage libatomic into the distroless runners image (#37106) (ca600ad)
- core: Stop npm audit from stalling Instance AI sandbox setup (#37864) (7ac335d)
- core: Stop task broker before task runner processes on shutdown (#37833) (2ad8d01)
- core: Stop the AI Assistant from pulling the whole workflow through the model for small edits (#37644) (8ef5ba6)
- core: Stop the workflow builder writing Python Code nodes that cannot run (#37083) (16a1a78)
- core: Stop webhook routing locally before best-effort external teardown (#37241) (cae0c8b)
- core: Support writes on VM expression lazy proxies via evaluation-scoped copy-on-write (#37262) (f77e270)
- core: Surface AI node failure with useful message and original cause (#37113) (6826730)
- core: Surface the original error instead of replaying single-use bodies on OAuth2 401 retry (#37000) (86c2a2b)
- core: Take archived workflows into account during package import (#37668) (98dfb30)
- core: Teach the AI Assistant to mark polled items handled after create actions (#37436) (78151b2)
- core: Thread execution id through dynamic-credential storage (#37233) (42a782d)
- core: Unload a community package when a fresh install fails after loading it (#37034) (78130a1)
- core: Update Qdrant client and remove undici v6 dependencies so AI requests work on Node 26 (#37758) (325feb3)
- core: Validate the expression engine timeout and memory limit settings (#37333) (90a84ab)
- core: Verify a resolved agent model against the credential's live list (#37240) (19582fb)
- core: Wait for detached sub-workflows before the worker stops its task runner (#37737) (afc4a54)
- core: Workflow tools should wait and not throw if parent WF is suspended (#37087) (10ea0c8)
- editor: Align credit balance copy to "left" across views (#37423) (9c131d6)
- editor: Attribute credential telemetry to workflow and thread (#37027) (5fc0b75)
- editor: Close add-channel modal on outside click (#37171) (c7f3ceb)
- editor: Correct community node docs link interpolation key (#37236) (7e6cfed)
- editor: Distinguish session timeline errors (#36816) (b8bc67a)
- editor: Expand AI question text input automatically (#37627) (5e3774a)
- editor: Gate autosave on document hydration (#36966) (c0bc17d)
- editor: Hide Gateway credits for HTTP Request and GraphQL nodes (#37810) (c292476)
- editor: Improve screen reader support for scope selector tool pills (#37159) (e644562)
- editor: Keep workflows moved out of a folder visible in the source control push modal (#37128) (49e28b5)
- editor: Preserve n8n credits when copying workflows (#37253) (8946168)
- editor: Refresh workflow checksum after publishing from an embedded editor (#37949) (8119ea3)
- editor: Render the credit banner as its own card above detached chat inputs (#37082) (2ac3655)
- editor: Restore Instance AI draft when thread creation fails (#37874) (0820083)
- editor: Restore parameter expression toggle layout (#37295) (b335236)
- editor: Scope end-user credential trigger warning to reachable nodes (#37081) (8399317)
- editor: Set max resize height for decision input (#37061) (2d227dd)
- editor: Show an activity indicator while the AI Assistant is still working (#37046) (5b4c65b)
- editor: Show error when eligible reviewers fail to load (#37089) (45a104a)
- editor: Show restart notice after license activation (#37841) (f56d87d)
- editor: Show skill size limits as a character count (#37847) (a9d5fb7)
- editor: Start AI Assistant conversations in the current project (#37051) (e5f2efc)
- editor: Stop a new node from showing a deleted node's execution data (#36915) (8bf95ac)
- editor: Stop autosave retries on permanent errors (#36967) (588317e)
- editor: Stop the instance AI model dropdown opening when the wizard opens (#37215) (293e63e)
- editor: Update Agent builder assistant placeholder (#37529) (20cf19f)
- editor: Update AI credential and model selection (#36738) (0871ad7)
- Evaluation Trigger Node: Respect the row limit when reading from a data table (#36948) (ced302a)
- Fix attribution footer link on the Form Ending page (#37288) (e08a4fd)
- Flag resolutions field in community node package.json vetting (#36768) (d85c0b2)
- Form Node: Improve error messages for invalid form definition JSON (#37291) (d8ce73c)
- Freshservice Node: Send change filters as dedicated query params (#34380) (5ae1861)
- Gmail Trigger Node: Do not lose queued messages when a fetch fails mid-poll (#37263) (fe61e57)
- Gmail Trigger Node: Do not miss emails when more than 100 arrive between polls (#37261) (addc7f9)
- Google Gemini Node: Validate domain before downloading (#37459) (a1c1f6f)
- Guarantee package.json restore after the FE trim step (#37446) (fd6db75)
- HTTP Request Node: Keep SSL passphrases with whitespace intact (#37020) (bcd240f)
- HTTP Request Node: Show the API response when a file upload fails (#36924) (8430516)
- Jira Node: Strip trailing slashes from domain URL (#32163) (a69155a)
- Jira Software Node: Send expand as comma-separated string for Jira Cloud searches (#37527) (9f2ebe5)
- Ldap Node: Escape expression output in the Custom Filter field (#37301) (91f8794)
- Microsoft SQL Node: Fix TLS error when the IP is used to connect to the server (#37870) (5ddfb60)
- Microsoft Teams Node: Send Online Meeting times in UTC and share the Graph helpers (#37723) (d5e05b2)
- Mistral Cloud Chat Model Node: Handle Request objects in undici-backed proxyFetch (#37946) (7533aaa)
- Nextcloud Node: Validate
webDavUrlto prevent cryptic "Invalid URL" error (#34031) (209cbfb) - Preserve AWS request parameter values (#37303) (267d98b)
- Quote and validate Postgres table and column identifiers in AI nodes (#31370) (1fd2918)
- Read/Write Files from Disk Node: Allow glob character classes in File(s) Selector (#36901) (3c48b53)
- Require a configured model before the AI Assistant accepts a prompt (#37226) (38e33a4)
- Restore legacy PEM headers when reformatting single-line keys (#37088) (044a90d)
- Sign Microsoft Dynamics OAuth2 requests with the access token (#37855) (6fa5b3d)
- Stop replacing error messages with "Unknown error" (#36820) (5df7a17)
- Update MCP server status in AI Assistant when tool call failed or credentials updated (#37197) (b639fe5)
- Use sentence case for settings menu labels (#36651) (7bfdc99)
- Wordpress Node: Send OAuth2 client credentials in request body (#36082) (5aeb96c)
Features
- Add in-widget credential status strip to @n8n/chat (#37399) (f7f1ba3)
- ai-builder: Add an n8n credits section to the agent tools modal (#36183) (54ac6cc)
- ai-builder: Consolidate node credential resolution in agent builder to use same service as AIA (#36903) (f41f864)
- ai-builder: Make AI Assistant capability-aware for agent changes (#37479) (d657bfe)
- Airtop Node: Support running an agent with a specific browser profile (#34933) (c945633)
- API: Add a workflow version endpoint and deprecate the old two-variable path (#37114) (0b3ab52)
- API: Add push endpoint to the public API for source control (#37873) (21755d2)
- API: Add source control status endpoint to the public API (#37001) (daab195)
- API: Name exported package entities by slug and id (#37656) (285b730)
- API: Push and pull projects to a Git connection (#36998) (614cfe2)
- API: Return data table size on data table read endpoints (#37078) (e6d8edd)
- Confluence Node: Add Atlassian Service Account (2LO) authentication (#37536) (e07e717)
- Confluence Node: Add page add and remove label operations (#37002) (ea24aa9)
- Confluence Node: Add Page Get Comments operation (#37073) (843a4a8)
- Confluence Node: Add Page Get Many by Label operation (#36785) (9fbd9fb)
- Confluence Node: Add Space resource with Get and Get Many operations (#36898) (58d9d39)
- Confluence Node: Page — get labels (#36900) (9b910a1)
- core: Add background execution mode for sub-agent delegation (#37209) (4285d20)
- core: Add chat-specific branding to the shared OAuth consent screen (#37430) (e774ed2)
- core: Add folder exploration to Instance AI (#37865) (9769dac)
- core: Add Instance reporting module (#36796) (82d3480)
- core: Add Moonshot, MiniMax and Qwen Cloud as model providers in Agent Builder (#36751) (ebbdc1a)
- core: Add opt-in concurrency limits for Instance AI runs (#37435) (ed541bc)
- core: Add OTLP gRPC protocol support for OpenTelemetry tracing (#37491) (f748613)
- core: Allow Instance AI to search past conversations (#37478) (9a80b14)
- core: Always load the encryption module and seed keys safely on startup (#37416) (430bbe5)
- core: Cache the encryption keys in memory (#37753) (003fcf3)
- core: Chat trigger publish validation & workflow:execute access control (#37231) (1f062f9)
- core: Deprovision a workflow's schedules when it stops owning them (#37135) (2a24001)
- core: Establish chat session identity for credential resolution (#37041) (c96f329)
- core: Guide Instance AI credential selection (#37447) (be678fc)
- core: Index agent workflow tool dependencies and invalidate dependent runtimes (#37857) (19eba43)
- core: Let chat channels start a new agent session (#37174) (47ece30)
- core: Let Instance AI read node-type usage from the dependency index (#37539) (47c9644)
- core: Let workflow verification target a specific trigger (#37091) (6420048)
- core: Limit Git connections to one instance connection (#37302) (1e4edb2)
- core: Make chat trigger OAuth2 identity pipeline unconditional (#37942) (188e285)
- core: Make the encryption write path pluggable and move the rotation decision into the module (#37603) (9b10838)
- core: Reject the agent publish with the names of unpublished workflow tools (#37889) (60db997)
- core: Resolve node output schemas into generated type definitions (#37246) (1490129)
- core: Resolve sub-agents and workflow tools by run type (#37117) (fa43bc8)
- core: Serve a nonce-based Content-Security-Policy on n8n's HTML pages (#36749) (54b2b94)
- core: Skip live tests when n8n credits are depleted (#36641) (a328674)
- core: Split the hosted chat page into a trusted shell and a sandboxed frame (#36947) (662a401)
- core: Store signing deployment keys in the same wrapped form as data-encryption keys (#37953) (e12dc06)
- core: Support existing credentials in MCP registry (#37235) (5583ba4)
- core: Support workflows with Wait nodes as agent tools (#36692) (23a5f46)
- core: Track waiting workflow tools as background jobs (#37284) (cc203b1)
- Databricks Node: Add hidden Databricks Chat Model sub-node (#37299) (233f1ca)
- Databricks Node: Add partner User-Agent to chat model requests (#37774) (e0daef0)
- Databricks Node: Add user-delegated OAuth2 credential (authorization code + PKCE) (#37007) (e60c431)
- Databricks Node: Send a partner User-Agent on every API call (#37279) (5a88f06)
- Databricks Node: Support templated MCP registry server URLs (#37250) (44ddbbd)
- Edit Image Node: Add horizontal and vertical text alignment options (#34505) (feb8c57)
- editor: Add adaptive layout to ChatInput (#36939) (435ed5f)
- editor: Add agent card chat preview action (#37812) (185bf3e)
- editor: Add Contact Support link to Help menu for Cloud instances (#37414) (e3008bd)
- editor: Add floating Markdown editor toolbar (#37293) (5c7e006)
- editor: Add progress feedback to the artifact panel while the AI Assistant builds (#37562) (c2637da)
- editor: Add UI to select workflow changes to promote (no-change… (#37530) (90d176b)
- editor: Align workflow and agent header menus (#37315) (848265e)
- editor: Allow users to resize the review inbox sidebar (#37196) (ad4b899)
- editor: Complete N8nInputNumber2 adoption and remove the legacy InputNumber (#36598) (73ac8e4)
- editor: Deprecate and hide the Ask AI tab in the Code node (#37641) (b436bfa)
- editor: Remove preview tag for reviews in nav bar (#37816) (c5f06cf)
- editor: Rename n8n credits and n8n Connect copy to Gateway credits in the UI (#37267) (6718392)
- editor: Update node creator empty state and add a link to suggest an MCP service (#37339) (bc8e5ea)
- editor: Update the order of providers in the agent builder model picker (#37143) (da6da00)
- G Suite Admin Node: Add "orgUnitPath" option to User create and update operations (#20108) (e9f366d)
- Gmail Trigger Node: Finish each poll within its time budget (#37319) (5a03db4)
- Gotify Node: Add Gotify extra notification settings (#23915) (0aa9aa8)
- GraphQL Node: Add support for predefined credential types (#37671) (b6b2a7d)
- Jira Node: Add Atlassian Service Account (2LO) authentication (#37513) (f069c84)
- Microsoft Teams Node: Add get and reply operations for channel messages (#37542) (1c22d84)
- Microsoft Teams Node: Add Online Meeting Get operation (#37501) (40a957e)
- Microsoft Teams Node: Add Online Meeting resource with Create operation (#37500) (336fda8)
- Microsoft Teams Node: Add the chat member get many operation (#37745) (42dcc70)
- MongoDB Node: Batch update and find-and-update writes with bulkWrite (#37035) (5b9b332)
- Offer to send an anonymous failure report in the install script (#37016) (269de76)
- Trigger observational memory mid-run on a token budget (#37234) (39f49b9)
Performance Improvements
- core: Acquire agent workspace sandboxes lazily, make them persistent, and share them with delegated sub-agents (#37242) (a1b1f2e)
- core: Bound peak memory during source control push (#37862) (1ab9382)
- core: Chunk package ID lookups (#36923) (98e5104)
- core: Read the poller state row once per durable poll tick (#36973) (be01422)
- core: Reduce workflow import queries (#36949) (bcf693e)
- editor: Reduce AI gateway wallet requests by caching the credits balance (#36725) (d62dc26)
- Supabase Node: Fetch the API schema once for all column dropdowns (#37756) (5d355a6)