n8n@2.39.0
Pre-release
Pre-release
2.39.0 (2026-09-08)
Bug Fixes
- ai-builder: UI tweak to prevent overflowing text on err callout when on Agent Preview (#37615) (c2e8d02)
- 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: Check publish permission when a workflow save republishes (#37264) (485e370)
- Chat Trigger Node: Fix singular copy on the connect bar (#37945) (369c9e2)
- Chat Trigger Node: Re-authenticate hosted chat on session change (#37868) (64ba49d)
- Check constructor-assigned and type-asserted node descriptions (#37523) (e23ee05)
- Code Node: Keep identity and reporting fields when wrapping task runner errors (#37490) (b0550cb)
- 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: 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: 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: Forward all output branches when a waiting webhook node resumes (#31714) (7c21f4b)
- core: Give every simulated node at least one plausible item (#37557) (918067a)
- 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 Instance AI data-table queries targeted while diagnosing (#37489) (df4d30b)
- core: Keep reporting the original job error when the job key is gone (#37993) (7ce17be)
- 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: Prefer service-specific credentials for HTTP requests (#37844) (500ea39)
- core: Prevent Anthropic agent threads from breaking permanently and keep run errors visible (#37640) (dc5f420)
- core: Redirect failed OIDC logins to the sign-in page (#37428) (3e09299)
- core: Report the provider response when a chat model returns no choices (#37959) (49e7821)
- core: Return 503 when the AI assistant service is unreachable (#37957) (36426a8)
- 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: Take archived workflows into account during package import (#37668) (98dfb30)
- core: Update Qdrant client and remove undici v6 dependencies so AI requests work on Node 26 (#37758) (325feb3)
- 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: Expand AI question text input automatically (#37627) (5e3774a)
- editor: Hide Gateway credits for HTTP Request and GraphQL nodes (#37810) (c292476)
- editor: Preserve n8n credits when copying workflows (#37253) (8946168)
- editor: Refresh workflow checksum after publishing from an embedded editor (#37949) (8119ea3)
- editor: Restore Instance AI draft when thread creation fails (#37874) (0820083)
- editor: Scope end-user credential trigger warning to reachable nodes (#37081) (8399317)
- editor: Show restart notice after license activation (#37841) (f56d87d)
- editor: Show skill size limits as a character count (#37847) (a9d5fb7)
- editor: Update Agent builder assistant placeholder (#37529) (20cf19f)
- Fix attribution footer link on the Form Ending page (#37288) (e08a4fd)
- Freshservice Node: Send change filters as dedicated query params (#34380) (5ae1861)
- Google Gemini Node: Validate domain before downloading (#37459) (a1c1f6f)
- Guarantee package.json restore after the FE trim step (#37446) (fd6db75)
- 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)
- Read/Write Files from Disk Node: Allow glob character classes in File(s) Selector (#36901) (3c48b53)
- Sign Microsoft Dynamics OAuth2 requests with the access token (#37855) (6fa5b3d)
- Update MCP server status in AI Assistant when tool call failed or credentials updated (#37197) (b639fe5)
- Use consistent personal space icon in the Instance AI artifacts (#38011) (cbaa0be)
- Wordpress Node: Send OAuth2 client credentials in request body (#36082) (5aeb96c)
Features
- 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)
- core: Add folder exploration to Instance AI (#37865) (9769dac)
- core: Add Instance reporting module (#36796) (82d3480)
- 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: Deprovision a workflow's schedules when it stops owning them (#37135) (2a24001)
- 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: 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: Share the parent workspace sandbox with background sub-agents (#38025) (80577ac)
- 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: 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: 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 agent card chat preview action (#37812) (185bf3e)
- 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: Allow users to resize the review inbox sidebar (#37196) (ad4b899)
- 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: Update node creator empty state and add a link to suggest an MCP service (#37339) (bc8e5ea)
- 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)
- 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)