v3.9.0
LTSRecommended
Released Mar 31, 2026·Supported until Dec 31, 2026·Community 1.13.3·Enterprise 0.16.0
Breaking
1 to verify
Security
Issues
Changes
9F · 13B
Downtime
Zero
Upgrade Impact
Breaking:Removed integrations for CVE remediation
Removed AnalyticDB, Tablestore, ClickZetta, and Wandb WeaveVector store integrations (AnalyticDB, Tablestore, ClickZetta) and tracing provider integration (Wandb Weave) are not included in the current LTS release of the Enterprise Edition image. If your deployment relies on any of them, you may continue using the Community Edition image after thoroughly reviewing and accepting the associated security risks.
What Changed
22New Features
Human-in-the-Loop (HITL): Human Input NodeWorkflows can now pause at any point and wait for human review before continuing. The new Human Input node lets you insert review steps directly into the workflow graph, where reviewers can inspect AI outputs, edit variables, and route the workflow via custom action buttons (e.g., Approve, Reject, Escalate). Forms are delivered via Webapp or Email, and paused runs resume automatically once a response is submitted.
Workflow Execution Now Runs in Celery WorkersWorkflow-based streaming executions and Advanced Chat executions have been moved out of the API process and into Celery workers. This architectural change improves scalability and is a prerequisite for HITL pause/resume. A new Celery queue `workflow_based_app_execution` is required — ensure your deployment configuration (Helm values or Docker Compose) includes workers consuming this queue, otherwise streaming executions will not be processed.
MCP Tool Usage Metadata ExtractionMCP tool integrations now extract and surface token and cost usage metadata from tool responses, making it possible to track and attribute resource consumption from MCP-connected services within workflow runs.
Service API: End-User Lookup EndpointA new Service API endpoint allows callers to look up end-users within the scope of a specific tenant and app, making it easier to build user management integrations and audit workflows programmatically.
Dutch (nl-NL) Language SupportDutch has been added as a supported interface language across both the backend language mapping and web localization resources.
Admin API: Bulk DSL Import & ExportNew Admin API endpoints support batch importing and exporting app DSL files, enabling faster app migration, backup, and provisioning across workspaces.
Helm: Celery Queue Splitting for Dedicated Embedding WorkersThe Helm chart now supports splitting Celery queues into dedicated workers with independent resource configuration. This allows administrators to allocate separate compute resources specifically for knowledge base embedding tasks, resolving extreme slowness when processing large documents.
Enterprise Telemetry ImprovementsEnterprise-specific telemetry enhancements have been integrated into the main codebase, providing better observability and usage tracking for Dify Enterprise deployments.
Built-in Enterprise OSS Replaces Bundled MinIOThe bundled MinIO instance in the Helm chart has been replaced with a lightweight built-in enterprise object storage service (OSS). This change was driven by the open-source MinIO project no longer receiving active updates. The Helm chart and enterprise backend have been updated to use the new OSS component automatically. Users upgrading from a previous version who relied on the bundled MinIO should review the Helm values for any storage configuration changes.
Bug Fixes
Security: Access Token Invalidation on LogoutFixed a security vulnerability where user access tokens remained valid after signing out. Tokens are now properly revoked upon logout, preventing unauthorized API access with stale credentials.
CVE RemediationAddressed multiple CVEs across API, enterprise collector, enterprise frontend, sandbox, and web container images. See the Security CVE section below for the full scan report.
Plugin Version Upgrade/Downgrade Returns 404Fixed a 404 error that occurred when switching a custom plugin to a different version (upgrade or downgrade) from the Enterprise admin panel when the plugin was already assigned to workspaces. The system now correctly follows an upgrade path instead of treating the operation as a fresh install.
Plugin Management Page Misses Unassigned PluginsFixed a bug where the Enterprise admin plugin management page did not display installed plugins that had no active workspace assignments. All installed plugins are now visible, improving operational visibility and cost management.
Credential Policy API PerformanceOptimized the credential policy API with concurrent database reads, resolving high latency that was degrading the user experience when fetching or updating model credential policies.
Credential Policy API Accepts Invalid Plugin IDsFixed a bug where the credential policy PUT API would persist invalid plugin identifier values (e.g., a malformed three-segment ID), causing all subsequent credential policy read and write operations to fail with a 500 error that required manual database intervention to recover.
Credentials Unselectable After Plugin Version ChangeFixed an issue where credentials assigned to workspaces became unselectable in the workflow editor after an admin updated the plugin version via the management panel. Users no longer need to reassign credentials as a workaround.
Group Creation Returns False "Already Exists" ErrorFixed a bug where creating a new user group triggered a "group already exists" error and a 500 response even though no such group existed, preventing successful group creation.
OTel Endpoint URL Validation Rejects Valid PathsFixed the OpenTelemetry endpoint URL validator to accept URLs that include a path component (e.g., `https://api.smith.langchain.com/otel/v1/traces`), enabling compatibility with LangSmith and other observability platforms that require path-based endpoints.
OpenAI New Model Credential Validation ErrorFixed a credential validation error for newer OpenAI models (e.g., GPT-5.2 and above) that have deprecated the `max_tokens` parameter in favor of `max_completion_tokens`. The Dify SDK now sends the correct parameter, eliminating the 400 "unsupported parameter" error.
Workspace List Loads Slowly After Helm UpgradeFixed a performance regression introduced in prior Helm-deployed versions where refreshing the workspace list took significantly longer than expected. The underlying query has been optimized to restore fast workspace list rendering.
Helm Custom CA Certificate Not Applied to CollectorFixed a Helm configuration issue where custom CA certificates configured for the deployment were not propagated to the collector component, causing TLS verification failures for outbound connections from the collector.
Go Runtime Upgrade for Enterprise ComponentsEnterprise backend components have been updated to a newer version of Go, improving runtime performance and closing known security issues in the Go standard library.
Upgrade Guide
Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Zero-downtime rolling upgrade supported
Upgrade Command
# Back up database first, then:
$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.0
Rollback
$ helm rollback dify 0
Security & CVE
Security vulnerabilities found in this release.1 Critical · 30 High CVE across all container images
Image
api
enterprise
enterpriseAudit
enterpriseCollector
enterpriseFrontend
gateway
plugin_build_base_py312
plugin_build_base_py313
plugin_build_base_py314
plugin_connector
plugin_controller
plugin_daemon
plugin_daemon_local
plugin_manager
plugin_shader
sandbox
web
critical
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
high
1
0
0
1
1
0
7
7
7
0
0
0
4
0
0
1
1
medium
11
4
4
5
8
4
10
9
9
6
4
3
742
6
4
7
4
low
25
4
4
4
3
4
153
153
153
5
4
3
51
5
4
26
3
Status
FAIL
PASS
PASS
FAIL
FAIL
PASS
FAIL
FAIL
FAIL
PASS
PASS
PASS
FAIL
PASS
PASS
FAIL
FAIL
ScannerDocker Scout
Scanned
Mar 31, 2026
Data Source
Docker
Benchmark Report
TTFE – Time To First Event (ms)
AVG
94.55
MIN
41
MAX
2228
P50
51
P90
98.3
P95
169.45
Connections
Max Concurrent
22
Avg Active
13.6
Empty Workflow QPS
Max QPS
71
Avg QPS
36.37
Avg Duration (ms)
215.61
License Compliance
All dependencies compliant- no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-Clause