megachangelog
Improvement2.39.0

n8n 2.39.0

This release includes numerous bug fixes across core infrastructure, nodes, and the editor—addressing issues with webhook handling, agent workflows, credential management, and chat triggers. It also introduces new features like workflow version endpoints, AI Assistant capability awareness, and browser profile support in the Airtop Node.

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)

Performance Improvements

  • core: Bound peak memory during source control push (#37862) (1ab9382)
  • Supabase Node: Fetch the API schema once for all column dropdowns (#37756) (5d355a6)

Review in cubic

corenodeseditorai-assistantstability

Source: original entry ↗