Release v3.9.3
What Changed
6Upgrade Guide
# Back up database first, then:
$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.3
$ helm rollback dify 0
# Back up database first, then:
$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.3
$ helm rollback dify 0
# Back up database first, then:
$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.2
$ helm rollback dify 0
Example Helm values for Azure managed identity:
global:
podLabels:
azure.workload.identity/use: "true"
plugin_daemon:
# azure managed service account
serviceAccountName: "plugin-daemon-mi"
enterpriseAudit:
serviceAccountName: "enterprise-audit-mi"
azureBlob:
useManagedIdentity: true
Example per-database credential environment variables:
# If not set, will fallback to externalDatabase.username, externalDatabase.password
databaseCredentials:
dify:
user: ""
password: ""
enterprise:
user: ""
password: ""
audit:
user: ""
password: ""
plugin_daemon:
user: ""
password: ""
# Back up database first, then:
$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.1
$ helm rollback dify 0
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.https://api.smith.langchain.com/otel/v1/traces), enabling compatibility with LangSmith and other observability platforms that require path-based endpoints.max_tokens parameter in favor of max_completion_tokens. The Dify SDK now sends the correct parameter, eliminating the 400 "unsupported parameter" error.Pre-Upgrade Checklist
Configuring Additional Workers (Optional)
The default Celery worker is not affected by this feature. The trigger queue has been
merged into the common worker, so upgrading does not require a separate trigger worker
and existing trigger functionality continues to work without any configuration changes.
You may optionally deploy additional workers that consume specific queues, giving you fine-grained control over resource allocation and improved processing throughput.
Add an additionalWorkers list to your Helm values.yaml:
additionalWorkers:
- name: workflow-worker
enabled: false
replicas: 1
celeryQueues: "workflow,workflow_storage,workflow_based_app_execution"
celeryWorkerAmount: 2
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
extraEnv: []
# Back up database first, then:
$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.0
$ helm rollback dify 0