Dify 1.4.1stable Released May 27, 2025
Impact Score: 5/10

Dify: v1.4.1

Source available β€” automated, not human-reviewed

Component: dify Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified β€” check source notes
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

Dify 1.4.1. Source highlight: πŸš€ What’s New in v1.4.1? πŸš€

Who Does This Impact? (Role-Based Analysis)

πŸ’» Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

πŸ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

βš™οΈ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

✨ New Features & Capabilities (6)

  • **Web Media Element Enhancements**: Added support for both `<video>` and `<audio>` elements with `src` attributes, bringing you more flexibility when embedding media, by @ruanjf in #19988.
  • **Aliyun OSS Storage Support in Plugin Daemon**: The new Plugin Storage Type now supports Aliyun OSS, catering to users in need of this cloud storage option, courtesy of @quicksandznzn in #20012.
  • **Tracing Conversation in Opik Tracer**: Introduced support for tracking conversations via Opik Tracer, enhancing your tracing capabilities, integrated by @Lothiraldan in #20063.
  • **Streamlined App Creation**: Simplified the app creation experience with collapsed basic app types for a more intuitive setup, thanks to @guchenhe in #20007.
  • **Document Extractor Enhancements**: Implemented the chardet encoding in our document extractor to handle varied text encodings more robustly, courtesy of @laipz8200 in #20269.
  • feat(workflow): domain model for workflow node execution

⚑ Performance & Enhancements (1)

  • chore: improve some doc

πŸ”§ Bug Fixes & Patches (6)

  • **Optional Request Logging**: Now you can configure optional request and response logging to help with debugging and tracking, thanks to @NeatGuyCoding in #19783.
  • **Security Update**: Upgraded qdrant-client to version 1.9.0 to keep your environment secure and up to date by @Gevtolev in #20231.
  • **Overflow and Layout Fixes**: Corrected metadata condition name overflow and improved handling of long bot descriptions by @CorrectRoadH in #19812 and #19805.
  • **File Upload and Export**: Resolved issues with avatar uploads and custom file type exports so everything uploads without a hitch by @iamjoel and @hjlarry in respective pulls.
  • **Performance Optimizations**: Improved several workflows, including the validation logic in OpsTraceManager and chart rendering in markdown to tackle flickering and looping issues, with help from @jameshui1997 and @xuzijie1995 among others.
  • **Knowledge Retrieval and Workflow Enhancements**: Addressed an uninitialized variable error and improved logic in knowledge retrieval efforts by @zhudongwork and others.
πŸ“„ View Raw Release Notes (Original Developer Log)
# πŸš€ What’s New in v1.4.1? πŸš€ Welcome to version 1.4.1! This release is all about squashing bugs, enhancing functionality, and making everything run smoother. Here’s the scoop: ## πŸš€ New Features - **Optional Request Logging**: Now you can configure optional request and response logging to help with debugging and tracking, thanks to @NeatGuyCoding in #19783. - **Web Media Element Enhancements**: Added support for both `<video>` and `<audio>` elements with `src` attributes, bringing you more flexibility when embedding media, by @ruanjf in #19988. - **Aliyun OSS Storage Support in Plugin Daemon**: The new Plugin Storage Type now supports Aliyun OSS, catering to users in need of this cloud storage option, courtesy of @quicksandznzn in #20012. - **Tracing Conversation in Opik Tracer**: Introduced support for tracking conversations via Opik Tracer, enhancing your tracing capabilities, integrated by @Lothiraldan in #20063. - **Streamlined App Creation**: Simplified the app creation experience with collapsed basic app types for a more intuitive setup, thanks to @guchenhe in #20007. - **Document Extractor Enhancements**: Implemented the chardet encoding in our document extractor to handle varied text encodings more robustly, courtesy of @laipz8200 in #20269. ## πŸ› οΈ Fixes and Improvements - **Security Update**: Upgraded qdrant-client to version 1.9.0 to keep your environment secure and up to date by @Gevtolev in #20231. - **Overflow and Layout Fixes**: Corrected metadata condition name overflow and improved handling of long bot descriptions by @CorrectRoadH in #19812 and #19805. - **File Upload and Export**: Resolved issues with avatar uploads and custom file type exports so everything uploads without a hitch by @iamjoel and @hjlarry in respective pulls. - **Performance Optimizations**: Improved several workflows, including the validation logic in OpsTraceManager and chart rendering in markdown to tackle flickering and looping issues, with help from @jameshui1997 and @xuzijie1995 among others. - **Knowledge Retrieval and Workflow Enhancements**: Addressed an uninitialized variable error and improved logic in knowledge retrieval efforts by @zhudongwork and others. Upgrade to v1.4.1 and enjoy a more streamlined, robust, and feature-rich experience that primes your projects for success! --- ## Upgrade Guide ### Docker Compose Deployments 1. Back up your customized docker-compose YAML file (optional) ```bash cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak ``` 2. Get the latest code from the main branch ```bash git checkout main git pull origin main ``` 3. Stop the service. Please execute in the docker directory ```bash docker compose down ``` 4. Back up data ```bash tar -cvf volumes-$(date +%s).tgz volumes ``` 5. Upgrade services ```bash docker compose up -d ``` ### Source Code Deployments 1. Stop the API server, Worker, and Web frontend Server. 2. Get the latest code from the release branch: ```bash git checkout 1.4.1 ``` 3. Update Python dependencies: ```bash cd api uv sync ``` 7. Then, let's run the migration script: ```bash uv run flask db upgrade ``` 8. Finally, run the API server, Worker, and Web frontend Server again. --- ## What's Changed * Resolve Python Logger library warnings by @emmanuel-ferdman in https://github.com/langgenius/dify/pull/19791 * Fix: style of app publisher by @JzoNgKVO in https://github.com/langgenius/dify/pull/19803 * fix: fix metadata condition name overflow by @CorrectRoadH in https://github.com/langgenius/dify/pull/19812 * fix: fix overflow when bot description too long by @CorrectRoadH in https://github.com/langgenius/dify/pull/19805 * fix: llm parameters radio type dark style by @junjiem in https://github.com/langgenius/dify/pull/19833 * feat(workflow): domain model for workflow node execution by @laipz8200 in https://github.com/langgenius/dify/pull/19430 * fix: upload avatar failed by @iamjoel in https://github.com/langgenius/dify/pull/19853 * fix: correct type mismatch in WorkflowService node execution handling by @laipz8200 in https://github.com/langgenius/dify/pull/19846 * revert https://github.com/langgenius/dify/pull/19497 (19497) by @gq957534377 in https://github.com/langgenius/dify/pull/19807 * feat(DraftWorkflowApi): Requires environment_variables in DraftWorkflowApi by @laipz8200 in https://github.com/langgenius/dify/pull/19849 * feat: Add optional request and response JSON logging extension with configuration and tests by @NeatGuyCoding in https://github.com/langgenius/dify/pull/19783 * fix: nav selector's dark theme by @hjlarry in https://github.com/langgenius/dify/pull/19869 * fix: tool node number type constant field dark style by @junjiem in https://github.com/langgenius/dify/pull/19818 * fix(devcontainer): uv sync fail by @yedamao in https://github.com/langgenius/dify/pull/19834 * docs: Add text_to_speech left out in the API response by @yeyunwen in https://github.com/langgenius/dify/pull/19862 * chore: improve some doc by @hjlarry in https://github.com/langgenius/dify/pull/19881 * fix create_tracing_app_config error by @hieheihei in https://github.com/langgenius/dify/pull/19884 * fix: db_model save to _node_execution_cache by @hjlarry in https://github.com/langgenius/dify/pull/19911 * feat(api): Introduce `WorkflowDraftVariable` Model by @QuantumGhost in https://github.com/langgenius/dify/pull/19737 * feat(workflow): Add variable node jump navigation and persist node dimensions/position by @wellCh4n in https://github.com/langgenius/dify/pull/13623 * chore: upgrade Redis from v6 to v7 in middlewares by @bowenliang123 in https://github.com/langgenius/dify/pull/19935 * docs: Optimize Response data array object indentation for the /messages interface by @yeyunwen in https://github.com/langgenius/dify/pull/19922 * Feat(WaterCrawl error handling): add custom exceptions and error handling by @amirasaran in https://github.com/langgenius/dify/pull/19948 * fix model workflow_draft_variables duplicate app_id set. by @zhanluxianshen in https://github.com/langgenius/dify/pull/19949 * Revert "chore: upgrade Redis from v6 to v7 in middlewares" by @crazywoola in https://github.com/langgenius/dify/pull/19960 * chore: update redis dependency to version 6.1.0 in api/pyproject.toml by @rotoni in https://github.com/langgenius/dify/pull/19885 * E-300 by @douxc in https://github.com/langgenius/dify/pull/19726 * fix: fix page broken for undefined permission by @LeeeeeeM in https://github.com/langgenius/dify/pull/19972 * fix: multiple retrieve reranking_enabled switch by @zengruizhao in https://github.com/langgenius/dify/pull/19958 * fix: ensure Decimal values in metadata are JSON serializable (fixes #19936) by @williamjizihe in https://github.com/langgenius/dify/pull/19955 * feat: Web <video> and <audio> element support src attribute by @ruanjf in https://github.com/langgenius/dify/pull/19988 * fix: search query and refine the logic by @crazywoola in https://github.com/langgenius/dify/pull/19987 * fix: fix duplicate app lose custom image by @CorrectRoadH in https://github.com/langgenius/dify/pull/19775 * chore: Reduce the invocation of the plugin interface by @luckylhb90 in https://github.com/langgenius/dify/pull/19629 * Revert "fix: fix duplicate app lose custom image" by @crazywoola in https://github.com/langgenius/dify/pull/19995 * fix: update IN SERVICE status text in app detail panel by @douxc in https://github.com/langgenius/dify/pull/19993 * fix: ReactFlow background in dark theme by @crazywoola in https://github.com/langgenius/dify/pull/20013 * fix create_tracing_app_config error (#19884) by @homeant in https://github.com/langgenius/dify/pull/20004 * fix: emoji picker in dark mode by @crazywoola in https://github.com/langgenius/dify/pull/20019 * Feat:Plugin Storage Type Support Aliyun OSS by @quicksandznzn in https://github.com/langgenius/dify/pull/20012 * feat: Move to node in workflow panel and fix help link hover style by @wellCh4n in https://github.com/langgenius/dify/pull/19998 * feat: Support hidden fields in the start node by @ModyQyW in https://github.com/langgenius/dify/pull/19678 * refactor: Use typed SQLAlchemy base model and fix type errors by @laipz8200 in https://github.com/langgenius/dify/pull/19980 * fix(sqlalchemy_workflow_node_execution_repository): Missing `triggered_from` while querying WorkflowNodeExecution by @laipz8200 in https://github.com/langgenius/dify/pull/20044 * Fix/modify translation by @HanqingZ in https://github.com/langgenius/dify/pull/20046 * Simplify `execution_metadata` Handling for `WorkflowNodeExecution` by @QuantumGhost in https://github.com/langgenius/dify/pull/20062 * tencent vectordb compatible with version 1.1.3 and below by @wlleiiwang in https://github.com/langgenius/dify/pull/20056 * feat: Introduce WorkflowExecution Domain Entity and Repository, Replace WorkflowRun Direct Usage, and Unify Stream Response Logic by @laipz8200 in https://github.com/langgenius/dify/pull/20067 * Fix/fix trace provider delete err by @hieheihei in https://github.com/langgenius/dify/pull/20070 * feat: Split WorkflowCycleManager by @laipz8200 in https://github.com/langgenius/dify/pull/20071 * fix: correct indentation in dataset retrieval model assignment by @GonzaHM in https://github.com/langgenius/dify/pull/20040 * fix: uninitialized variable error on empty knowledge retrieval(agent) by @zhudongwork in https://github.com/langgenius/dify/pull/20025 * Refactor OpenSearch config to separate use_ssl and verify_certs flags by @He-Huang in https://github.com/langgenius/dify/pull/20075 * fix: improve tracing provider validation logic in OpsTraceManager by @jameshui1997 in https://github.com/langgenius/dify/pull/20042 * chore: Update S3StorageConfig to match boto3 type hints by @Lothiraldan in https://github.com/langgenius/dify/pull/20072 * feat: add entry point for requesting a plugin by @nite-knite in https://github.com/langgenius/dify/pull/20026 * Add support for tracking conversation with Opik Tracer by @Lothiraldan in https://github.com/langgenius/dify/pull/20063 * set oceanbase ip to 127.0.0.1 to avoid connection failure after restart by @whhe in https://github.com/langgenius/dify/pull/20103 * fix(markdown): improve ECharts rendering for streaming content and da… by @xuzijie1995 in https://github.com/langgenius/dify/pull/20101 * fix: update messages credita by @douxc in https://github.com/langgenius/dify/pull/20092 * simplify app create experience with collapsed basic app types and imp… by @guchenhe in https://github.com/langgenius/dify/pull/20007 * fix: GitHub stars count sync not working by @wellCh4n in https://github.com/langgenius/dify/pull/20126 * fix: some dark theme not display well by @hjlarry in https://github.com/langgenius/dify/pull/20121 * fix: system file upload can't export custom file types by @hjlarry in https://github.com/langgenius/dify/pull/20122 * fix(echarts): Resolve chart flickering and animation loop in Markdown by @xuzijie1995 in https://github.com/langgenius/dify/pull/20161 * fix: update Line component for dark mode support and improve Empty co… by @WTW0313 in https://github.com/langgenius/dify/pull/20196 * fix: can not show loop detail in one step run by @iamjoel in https://github.com/langgenius/dify/pull/20215 * fix: resolve Mermaid mindmap generation issue by @GonzaHM in https://github.com/langgenius/dify/pull/20227 * fix: prevent save when default max_iteration has value in agent node by @LeeeeeeM in https://github.com/langgenius/dify/pull/20211 * doc: tiny fix github -> GitHub by @yihong0618 in https://github.com/langgenius/dify/pull/20185 * fix: add 'floatfmt' when extract number from excel ( #20153 ) by @water-in-stone in https://github.com/langgenius/dify/pull/20193 * fix: show two PromptLogModal when click log button (#20115) by @HyaCiovo in https://github.com/langgenius/dify/pull/20142 * feat: add alias for production web start command by @ZeroZ-lab in https://github.com/langgenius/dify/pull/20229 * feat: clean chunk content after add by @CorrectRoadH in https://github.com/langgenius/dify/pull/19785 * fix: Remove the custom comparison function from the memo HOC(#19679) by @HyaCiovo in https://github.com/langgenius/dify/pull/20197 * fix: #18132 when deepseek llm model, auto_generate name can't work by @hanqingwu in https://github.com/langgenius/dify/pull/18646 * feat: add author_name for app list card by @LeeeeeeM in https://github.com/langgenius/dify/pull/16900 * refactor: Consolidate Flask-Login Authentication Logic by @laipz8200 in https://github.com/langgenius/dify/pull/20235 * Fix dataseat card height by @ZeroZ-lab in https://github.com/langgenius/dify/pull/20239 * fix: not save workflow_run_id of chatflow message by @hjlarry in https://github.com/langgenius/dify/pull/20257 * fix: Copy request context and current user in app generators. by @laipz8200 in https://github.com/langgenius/dify/pull/20240 * fix: workflow http node by @zxhlyh in https://github.com/langgenius/dify/pull/20262 * fix[cve]: update qdrant-client from 1.7.3 to 1.9.0 by @Gevtolev in https://github.com/langgenius/dify/pull/20231 * fix: persist workflow execution status on partial success and failure by @laipz8200 in https://github.com/langgenius/dify/pull/20264 * feat: add pagination for plugin page by @LeeeeeeM in https://github.com/langgenius/dify/pull/20151 * feat: document extractor chardet encoding by @laipz8200 in https://github.com/langgenius/dify/pull/20269 * Modifying the preview of the uploaded avatar will freeze, fix the bug… by @gq957534377 in https://github.com/langgenius/dify/pull/20202 * fix: Refactor web reader to use readabilipy by @laipz8200 in https://github.com/langgenius/dify/pull/19789 * fix: dataset permission check for partial team members (#19249) by @mio-inamijima in https://github.com/langgenius/dify/pull/20242 * feat(qdrant):add replication_factor when create collection in qdrant by @rouxiaomin in https://github.com/langgenius/dify/pull/20133 * chore(remove_app_and_related_data_task): Revert `_delete_app_workflow_node_executions` by @laipz8200 in https://github.com/langgenius/dify/pull/20278 * chore(*): Bump version to 1.4.1 by @laipz8200 in https://github.com/langgenius/dify/pull/20275 ## New Contributors * @emmanuel-ferdman made their first contribution in https://github.com/langgenius/dify/pull/19791 * @NeatGuyCoding made their first contribution in https://github.com/langgenius/dify/pull/19783 * @yedamao made their first contribution in https://github.com/langgenius/dify/pull/19834 * @yeyunwen made their first contribution in https://github.com/langgenius/dify/pull/19862 * @rotoni made their first contribution in https://github.com/langgenius/dify/pull/19885 * @zengruizhao made their first contribution in https://github.com/langgenius/dify/pull/19958 * @williamjizihe made their first contribution in https://github.com/langgenius/dify/pull/19955 * @ruanjf made their first contribution in https://github.com/langgenius/dify/pull/19988 * @homeant made their first contribution in https://github.com/langgenius/dify/pull/20004 * @GonzaHM made their first contribution in https://github.com/langgenius/dify/pull/20040 * @zhudongwork made their first contribution in https://github.com/langgenius/dify/pull/20025 * @He-Huang made their first contribution in https://github.com/langgenius/dify/pull/20075 * @jameshui1997 made their first contribution in https://github.com/langgenius/dify/pull/20042 * @whhe made their first contribution in https://github.com/langgenius/dify/pull/20103 * @water-in-stone made their first contribution in https://github.com/langgenius/dify/pull/20193 * @mio-inamijima made their first contribution in https://github.com/langgenius/dify/pull/20242 **Full Changelog**: https://github.com/langgenius/dify/compare/1.4.0...1.4.1