Skip to main content

v3.10.0

LatestNon-skippable
Released May 28, 2026·Community 1.14.1·Community commit 7b551da·Enterprise 0.17.0·Helm chart·Docker Compose
Breaking
2 to verify
Security
Issues
Changes
7F · 13B
Downtime
required

Upgrade Impact

7 features · 13 fixes
Breaking:This release has breaking changes requiring manual action for Docker Compose deployments and Dify databases with legacy model_type values.
Dify DB: model_type Legacy Value Migration RequiredCE 1.14.1 enforces canonical model_type values in the Dify database. If your database contains legacy values (text-generation, embeddings, reranking), run flask data-migrate legacy-model-types from the Dify API container after upgrading. Enterprise DB: no migration needed. See Migration Notes in the Upgrade Guide for full instructions.
Docker Compose: New env_file ArchitectureThe Docker Compose package now uses an env_file-based architecture (aligned with CE 1.14.1). If you upgrade by replacing all files except .env (standard procedure), no action is needed. If you manage files manually, ensure files envs/enterprise/* are properly set up or overwritten in .env before starting the stack or Docker Compose will refuse to start.

What Changed

20
New Features
Bug Fixes
Security: SQL Injection Prevention in Model Credential APIThe enterprise gRPC endpoints CreateCredential and UpdateCredential now validate the customer_model_type field against a strict whitelist. Previously, a malformed value containing SQL injection characters could be written to the provider_models table, causing all downstream model-dependent APIs to return invalid_param errors requiring manual database intervention to recover.
Password Reset Fails After Dify UpgradeFixed a SQLAlchemy session management issue in the password reset flow that caused reset requests to fail following a Dify version upgrade.
Offline Environment: Plugin Install and Knowledge Pipeline Conversion FailFixed two bugs in air-gapped deployments. The enterprise admin backend no longer contacts marketplace.dify.ai when installing or assigning plugins, eliminating context deadline exceeded timeouts. Knowledge base-to-pipeline conversion no longer triggers marketplace queries in offline mode, resolving the 500 Internal Server Error.
Multimodal Knowledge Base: Images Not Accessible in BrowserFixed an issue where images in multimodal knowledge base documents were stored with the internal Kubernetes hostname (dify-api:5001) in their URLs, making them unreachable from user browsers. Image URLs now use the externally accessible domain.
OTLP Endpoint: Scheme-Prefixed URLs Now AcceptedThe OpenTelemetry endpoint validator previously rejected any URL containing :// (e.g., http://), blocking integrations with providers such as Alibaba Cloud ARMS that require a full URL with scheme. The validator now accepts http:// and https:// prefixed URLs correctly.
Collector: Pod Fails to Start When Postgres Password Contains Special CharacterFixed a URL parsing error in the enterprise collector that caused the pod to crash on startup when the Postgres connection string password contained a # character. The character was misinterpreted as a port separator, producing an "invalid port" parse error.
License: Spurious Reactivation Prompt After Pod RestartFixed a bug where restarting enterprise pods could trigger a license reactivation prompt due to a duplicate entry constraint violation on the cluster_id field in the licenses table. Duplicate cluster_id inserts on pod restart are now skipped, preventing the constraint violation.
Credentials: Multiple Default Credentials Can Be Set SimultaneouslyFixed a race condition in workspace credential management that allowed multiple members to each set their own credential as the default at the same time, resulting in more than one active default credential per workspace.
Plugin Daemon: Decode Endpoint Parameter Location MismatchFixed two mismatches between the enterprise service and plugin daemon API contract: the plugin_unique_identifier parameter on the decode/from_identifier endpoint was updated from request body to query parameter, and a separate parameter was migrated from body to form encoding. The enterprise service now sends both parameters in the correct location.
Plugin Installation: Compatible with uv Package ManagerPlugin installation now works correctly when uv is configured as the Python package manager, resolving failures in deployments that use uv instead of pip.
Code Node: Environment Variable References Display IncorrectlyFixed a frontend display bug in the workflow code node where references to environment variables and input parameters appeared malformed in the editor UI. The references were functional at runtime but rendered incorrectly, causing confusion during workflow authoring.
Knowledge Base: Incorrect Maximum Upload File Count DisplayedFixed a UI bug where the knowledge base upload dialog showed an inaccurate maximum number of files allowed per batch. The displayed limit now correctly reflects the configured value.
Model Credential: Context Length Lost When EditingFixed an issue where the configured context length value for a model credential was lost (reverted to empty) after editing and saving the credential. The context length is now correctly preserved through credential update operations.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
If using custom Redis or Sentinel configuration, review the new unified Redis/MQ schema in Helm values or Docker Compose before upgrading
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.10.0

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.2 Critical · 101 High CVE across all container images
ScannerDocker Scout
Scanned
May 21, 2026
Data Source
Docker
TTFE – Time To First Event (ms)
AVG
670.36
MIN
159
MAX
2091
P50
528
P90
931
P95
1511
Connections
Max Concurrent
7
Avg Active
0.9
Empty Workflow QPS
Max QPS
19.2
Avg QPS
18.99
Avg Duration (ms)
123.45

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0
© 2026 Dify All rights reserved.Enterprise release information is confidential. Do not distribute externally.