Dify 1.9.1stable Released Sep 29, 2025
Impact Score: 5/10

Dify: v1.9.1 โ€“ 1,000 Contributors, Infinite Gratitude

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.9.1. Source highlight: Congratulations on having our 1000th contributor!

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)

  • **Infrastructure & DevOps**:
  • Next.js upgraded to 15.5, now leveraging Turbopack in development for a faster, more modern build pipeline by @17hz in #24346.
  • Provided `X-Dify-Version` headers in marketplace API access for better traceability by @RockChinQ in #26210.
  • Security reporting improvements, with new sec report workflow added by @crazywoola in #26313.
  • **Pipelines & Engines**:
  • Built-in pipeline templates now support language configuration, unlocking multilingual deployments by @WTW0313 in #26124.

โšก Performance & Enhancements (3)

  • improve: pooling httpx clients for requests to code sandbox and ssrf
  • perf: provide X-Dify-Version for marketplace api access
  • perf: distribute concurrent plugin auto upgrade tasks

๐Ÿ”ง Bug Fixes & Patches (6)

  • **Debugging & Logging**:
  • Fixed NodeRunRetryEvent debug logging not working properly in Graph Engine by @quicksandznzn in #26085.
  • Fixed LLM node losing Flask context during parallel iterations, ensuring stable concurrent runs by @quicksandznzn in #26098.
  • Fixed agent-strategy prompt generator error by @quicksandznzn in #26278.
  • **Search & Parsing**:
  • Fixed `full_text_search` name reliability by @JohnJyong in #26104.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## Congratulations on having our 1000th contributor! <img width="319" height="168" alt="image" src="https://github.com/user-attachments/assets/10a7a78a-a49e-4886-a1fc-f44e233f76d3" /> ## ๐Ÿš€ New Features - **Infrastructure & DevOps**: - Next.js upgraded to 15.5, now leveraging Turbopack in development for a faster, more modern build pipeline by @17hz in #24346. - Provided `X-Dify-Version` headers in marketplace API access for better traceability by @RockChinQ in #26210. - Security reporting improvements, with new sec report workflow added by @crazywoola in #26313. - **Pipelines & Engines**: - Built-in pipeline templates now support language configuration, unlocking multilingual deployments by @WTW0313 in #26124. - Graph engine now blocks response nodes during streaming to avoid unintended outputs by @laipz8200 in #26364 / #26377. - **Community & Documentation**: - Streamlined `AGENTS.md` contribution guidelines by @laipz8200 in #26308. - Updated Graph Engine README docs for clarity by @hjlarry in #26337. ## ๐Ÿ›  Fixes & Improvements - **Debugging & Logging**: - Fixed NodeRunRetryEvent debug logging not working properly in Graph Engine by @quicksandznzn in #26085. - Fixed LLM node losing Flask context during parallel iterations, ensuring stable concurrent runs by @quicksandznzn in #26098. - Fixed agent-strategy prompt generator error by @quicksandznzn in #26278. - **Search & Parsing**: - Fixed `full_text_search` name reliability by @JohnJyong in #26104. - Corrected value extraction handling in IME composition for search input fields by @yangzheli in #26147. - OceanBase parser selection explanation clarified by @longbingljw in #26071. - **Pipeline & Workflow**: - Fixed workflow variable splitting logic (requires โ‰ฅ2 parts) by @zhanluxianshen in #26355. - Fixed tool node attribute `tool_node_version` judgment error causing compatibility issues by @goofy-z in #26274. - Fixed iteration conversation variables not syncing correctly by @laipz8200 in #26368. - Fixed Knowledge Base node crash when `retrieval_model` is null by @quicksandznzn in #26397. - Fixed workflow node mutation issues, preventing props from being incorrectly altered by @hyongtao-code in #26266. - Removed restrictions on adding workflow nodes by @zxhlyh in #26218. - **File Handling**: - Fixed remote filename handling so `Content-Disposition: inline` becomes `inline` instead of incorrect parsing by @sorphwer in #25877. - Synced FileUploader context with props to fix inconsistent file parameters in cached variable view by @Woo0ood in #26199. - Fixed variable not found error (#26144) by @sqewad in #26155. - Fixed db connection error in `embed_documents()` by @AkisAya in #26196. - Fixed model list refresh when credentials change by @zxhlyh in #26421. - Fixed retrieval configuration handling and missing `vector_setting` in dataset components by @WTW0313 in #26361 / #26380. - Fixed ChatClient `audio_to_text` `files` keyword bug by @EchterTimo in #26317. - Added missing import `IO` in client.py by @EchterTimo in #26389. - Removed `FILES_URL` in default .yaml settings by @JoJohanse in #26410. - **Performance & Networking**: - Improved pooling of `httpx` clients for requests to code sandbox and SSRF protection by @Blackoutta in #26052. - Distributed plugin auto-upgrade tasks with concurrency control by @RockChinQ in #26282. - Switched plugin auto-upgrade cache to Redis for reliability by @RockChinQ in #26356. - Fixed plugin detail panel not showing when >100 plugins are installed by @JzoNgKVO in #26405. - Debounce reference fix for performance stability by @crazywoola in #26433. - **UI/UX & Display**: - Fixed lingering display-related issues (translations, UI consistency) by @hjlarry in #26335. - Fixed broken CSS animations under Turbopack by naming unnamed animations in CSS modules by @lyzno1 in #26408. - Fixed verification code input using wrong `maxLength` prop by @hyongtao-code in #26244. - Fixed array-only filtering in List Operator picker, removed file-children fallback, aligned child types by @Woo0ood in #26240. - Fixed translation inconsistencies in ja-JP: โ€œใƒŠใƒฌใƒƒใ‚ธใƒ™ใƒผใ‚นโ€ vs. โ€œใƒŠใƒฌใƒƒใ‚ธใฎๅๅ‰ใจใ‚ขใ‚คใ‚ณใƒณโ€ by @mshr-h in #26243 and @NeatGuyCoding in #26270. - Improved โ€œtime from nowโ€ i18n support by @hjlarry in #26328. - Standardized dataset-pipeline i18n terminology by @lyzno1 in #26353. - **Code & Components**: - Refactored component exports for consistency by @ZeroZ-lab in #26033. - Refactored router to apply `ns.route` style by @laipz8200 in #26339. - Refactored lint scripts to remove duplication and simplify naming by @lyzno1 in #26259. - Applied `@console_ns.route` decorators to RAG pipeline controllers (internal refactor) by @Copilot in #26348. - Added missing `type="button"` attributes in components by @Copilot in #26249. --- ## 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.9.1 ``` 3. Update Python dependencies: ```bash cd api uv sync ``` 4. Then, let's run the migration script: ```bash uv run flask db upgrade ``` 5. Finally, run the API server, Worker, and Web frontend Server again. --- ## What's Changed * fix(api): graph engine debug logging NodeRunRetryEvent not effective by @quicksandznzn in https://github.com/langgenius/dify/pull/26085 * fix full_text_search name by @JohnJyong in https://github.com/langgenius/dify/pull/26104 * bump nextjs to 15.5 and turbopack for development mode by @17hz in https://github.com/langgenius/dify/pull/24346 * chore: refactor component exports for consistency by @ZeroZ-lab in https://github.com/langgenius/dify/pull/26033 * fix:add some explanation for oceanbase parser selection by @longbingljw in https://github.com/langgenius/dify/pull/26071 * feat(pipeline): add language support to built-in pipeline templates and update related components by @WTW0313 in https://github.com/langgenius/dify/pull/26124 * ci: Add hotfix/** branches to build-push workflow triggers by @QuantumGhost in https://github.com/langgenius/dify/pull/26129 * fix(api): Fix variable truncation for `list[File]` value in output mapping by @QuantumGhost in https://github.com/langgenius/dify/pull/26133 * one example of Session by @asukaminato0721 in https://github.com/langgenius/dify/pull/24135 * fix(api):LLM node losing Flask context during parallel iterations by @quicksandznzn in https://github.com/langgenius/dify/pull/26098 * fix(search-input): ensure proper value extraction in composition end handler by @yangzheli in https://github.com/langgenius/dify/pull/26147 * delete end_user check by @JohnJyong in https://github.com/langgenius/dify/pull/26187 * improve: pooling httpx clients for requests to code sandbox and ssrf by @Blackoutta in https://github.com/langgenius/dify/pull/26052 * fix: remote filename will be 'inline' if Content-Disposition: inline by @sorphwer in https://github.com/langgenius/dify/pull/25877 * perf: provide X-Dify-Version for marketplace api access by @RockChinQ in https://github.com/langgenius/dify/pull/26210 * Chore/remove add node restrict of workflow by @zxhlyh in https://github.com/langgenius/dify/pull/26218 * Fix array-only filtering in List Operator picker; remove file children fallback and align child types. by @Woo0ood in https://github.com/langgenius/dify/pull/26240 * fix: sync FileUploader context with props to fix inconsistent file parameter state in โ€œView cached variablesโ€. by @Woo0ood in https://github.com/langgenius/dify/pull/26199 * fix: add echarts and zrender to transpilePackages for ESM compatibility by @lyzno1 in https://github.com/langgenius/dify/pull/26208 * chore: fix inaccurate translation in ja-JP by @mshr-h in https://github.com/langgenius/dify/pull/26243 * aliyun_trace: unify the span attribute & compatible CMS 2.0 endpoint by @hieheihei in https://github.com/langgenius/dify/pull/26194 * fix(api): resolve error in agentโ€‘strategy prompt generator by @quicksandznzn in https://github.com/langgenius/dify/pull/26278 * minor: fix translation with the key value uses ใ€ŒใƒŠใƒฌใƒƒใ‚ธใฎๅๅ‰ใจใ‚ขใ‚คใ‚ณใƒณใ€ while the rest of the file uses ใ€ŒใƒŠใƒฌใƒƒใ‚ธใƒ™ใƒผใ‚นใ€ by @NeatGuyCoding in https://github.com/langgenius/dify/pull/26270 * refactor(web): simplify lint scripts, remove duplicates and standardize naming by @lyzno1 in https://github.com/langgenius/dify/pull/26259 * fmt first by @asukaminato0721 in https://github.com/langgenius/dify/pull/26221 * fix: resolve UUID parsing error for default user session lookup by @Cluas in https://github.com/langgenius/dify/pull/26109 * Fix: avoid mutating node props by @hyongtao-code in https://github.com/langgenius/dify/pull/26266 * update gen_ai semconv for aliyun trace by @hieheihei in https://github.com/langgenius/dify/pull/26288 * chore: streamline AGENTS.md guidance by @laipz8200 in https://github.com/langgenius/dify/pull/26308 * rm assigned but unused by @asukaminato0721 in https://github.com/langgenius/dify/pull/25639 * Chore/add sec report by @crazywoola in https://github.com/langgenius/dify/pull/26313 * Fix ChatClient.audio_to_text files keyword to make it work by @EchterTimo in https://github.com/langgenius/dify/pull/26317 * perf: distribute concurrent plugin auto upgrade tasks by @RockChinQ in https://github.com/langgenius/dify/pull/26282 * fix compatibility problem caused by tool node attribute 'tool_node_version' judgement error by @goofy-z in https://github.com/langgenius/dify/pull/26274 * refactor(router): apply ns.route style by @laipz8200 in https://github.com/langgenius/dify/pull/26339 * fix: some display-related issues by @hjlarry in https://github.com/langgenius/dify/pull/26335 * chore: time from now i18n support by @hjlarry in https://github.com/langgenius/dify/pull/26328 * doc: fix graph engine readme by @hjlarry in https://github.com/langgenius/dify/pull/26337 * [Chore/Refactor] Add missing 'type' attribute on 'button' components by @Copilot in https://github.com/langgenius/dify/pull/26249 * Fix: use correct maxLength prop for verification code input by @hyongtao-code in https://github.com/langgenius/dify/pull/26244 * fix db connection error in embed_documents() by @AkisAya in https://github.com/langgenius/dify/pull/26196 * refactor: standardize dataset-pipeline i18n terminology consistency by @lyzno1 in https://github.com/langgenius/dify/pull/26353 * fix workflow variable split judge. by @zhanluxianshen in https://github.com/langgenius/dify/pull/26355 * fix(graph_engine): block response nodes during streaming by @laipz8200 in https://github.com/langgenius/dify/pull/26364 * test(graph_engine): block response nodes during streaming by @laipz8200 in https://github.com/langgenius/dify/pull/26377 * [Chore/Refactor] Apply @console_ns.route decorators to RAG pipeline controllers by @Copilot in https://github.com/langgenius/dify/pull/26348 * Fix: Knowledge Base node crash when retrieval_model is null by @quicksandznzn in https://github.com/langgenius/dify/pull/26397 * fix: switch plugin auto upgrade cache to redis by @RockChinQ in https://github.com/langgenius/dify/pull/26356 * Fix plugin detail panel not show when installed plugins more than 100 by @JzoNgKVO in https://github.com/langgenius/dify/pull/26405 * fix(turbopack): fix animation issues with unnamed animations in CSS modules by @lyzno1 in https://github.com/langgenius/dify/pull/26408 * chore(deps): bump oracledb from 3.0.0 to 3.3.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/26396 * chore(deps): bump cos-python-sdk-v5 from 1.9.30 to 1.9.38 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/26395 * chore(deps-dev): bump @testing-library/jest-dom from 6.6.3 to 6.8.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/26393 * chore(deps-dev): bump @eslint/js from 9.31.0 to 9.36.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/26392 * Add missing import "IO" in client.py by @EchterTimo in https://github.com/langgenius/dify/pull/26389 * fix: model list refresh when change credential by @zxhlyh in https://github.com/langgenius/dify/pull/26421 * Fixes#26332 Remove FILES_URL in default .yaml settings by @JoJohanse in https://github.com/langgenius/dify/pull/26410 * fix: Fix retrieval configuration handling in dataset components by @WTW0313 in https://github.com/langgenius/dify/pull/26361 * Fix typing errors in dataset API by @asukaminato0721 in https://github.com/langgenius/dify/pull/26424 * fix: Fix vector_setting not found error by @WTW0313 in https://github.com/langgenius/dify/pull/26380 * fix: debounce ref by @crazywoola in https://github.com/langgenius/dify/pull/26433 * fix: variable not found #26144 by @sqewad in https://github.com/langgenius/dify/pull/26155 * fix(workflow): sync iteration conversation variables by @laipz8200 in https://github.com/langgenius/dify/pull/26368 * Fix: Remove core/tools from pyrightconfig.json and fix type errors by @asukaminato0721 in https://github.com/langgenius/dify/pull/26413 * feat(sdk): enhance Python SDK with 27 new Service API endpoints by @lyzno1 in https://github.com/langgenius/dify/pull/26401 * feat(typing): Remove "libs" from pyright exclude and fix typing errors by @asukaminato0721 in https://github.com/langgenius/dify/pull/26423 * Bump release references to 1.9.1 by @laipz8200 in https://github.com/langgenius/dify/pull/26453 ## New Contributors * @Blackoutta made their first contribution in https://github.com/langgenius/dify/pull/26052 * @mshr-h made their first contribution in https://github.com/langgenius/dify/pull/26243 * @Copilot made their first contribution in https://github.com/langgenius/dify/pull/26249 * @JoJohanse made their first contribution in https://github.com/langgenius/dify/pull/26410 * @sqewad made their first contribution in https://github.com/langgenius/dify/pull/26155 **Full Changelog**: https://github.com/langgenius/dify/compare/1.9.0...1.9.1