Dify still splits documents into very small chunks (around 4000 characters) #20211

Closed
opened 2026-02-21 20:06:19 -05:00 by yindo · 1 comment
Owner

Originally created by @luojichen on GitHub (Nov 8, 2025).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

V1.9.2

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

I set INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=40000 in .env
and set the segment to 102400, (much more than 4000) , but still not work.

Image

✔️ Expected Behavior

How can I set the MAX CHUNK LENTH, thankyou

Actual Behavior

No response

Originally created by @luojichen on GitHub (Nov 8, 2025). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version V1.9.2 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce I set INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=40000 in .env and set the segment to 102400, (much more than 4000) , but still not work. <img width="1249" height="912" alt="Image" src="https://github.com/user-attachments/assets/c5fe0720-1c81-4eb3-b870-014301da28c0" /> ### ✔️ Expected Behavior How can I set the MAX CHUNK LENTH, thankyou ### ❌ Actual Behavior _No response_
yindo added the 🐞 bug label 2026-02-21 20:06:19 -05:00
yindo closed this issue 2026-02-21 20:06:19 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Nov 8, 2025):

Dify's chunking is controlled by the INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH environment variable, but in practice, there is a system-level cap—usually 1000 or 4000 tokens/characters—that overrides higher values you set in the UI or .env file. This is a known issue, and even after restarting Docker, larger values often don't take effect due to backend enforcement and bugs in recent versions. The chunking logic also splits by delimiters (like paragraphs), so the max chunk length only applies if a paragraph exceeds the limit, which can result in smaller chunks than expected.

A recent fix was merged to make chunking respect the environment variable dynamically instead of a hardcoded value, so make sure you're running a version after this PR (merged Oct 2025). If you're still seeing the limit, double-check your .env and docker-compose.yaml, restart all containers, and verify the variable is set inside the running containers. If the issue persists, it's likely due to the system cap or a bug that hasn't been fully resolved yet. For now, the best workaround is to use parent-child segmentation mode with the full document as the parent chunk, which avoids forced splitting across pages and maintains larger context units for retrieval reference.

If you need chunk sizes above 4000, you may need to wait for a future release or manually patch your deployment with the latest chunking logic from the repo.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

@dosubot[bot] commented on GitHub (Nov 8, 2025): <!-- Answer --> Dify's chunking is controlled by the `INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH` environment variable, but in practice, there is a system-level cap—usually 1000 or 4000 tokens/characters—that overrides higher values you set in the UI or `.env` file. This is a known issue, and even after restarting Docker, larger values often don't take effect due to backend enforcement and bugs in recent versions. The chunking logic also splits by delimiters (like paragraphs), so the max chunk length only applies if a paragraph exceeds the limit, which can result in smaller chunks than expected. A recent fix was merged to make chunking respect the environment variable dynamically instead of a hardcoded value, so make sure you're running a version after [this PR](https://github.com/langgenius/dify/pull/26782) (merged Oct 2025). If you're still seeing the limit, double-check your `.env` and `docker-compose.yaml`, restart all containers, and verify the variable is set inside the running containers. If the issue persists, it's likely due to the system cap or a bug that hasn't been fully resolved yet. For now, the best workaround is to use parent-child segmentation mode with the full document as the parent chunk, which avoids forced splitting across pages and maintains larger context units for retrieval [reference](https://github.com/langgenius/dify/issues/14767). If you need chunk sizes above 4000, you may need to wait for a future release or manually patch your deployment with the latest chunking logic from the repo. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/fe3d21fb-42f1-4772-9f05-8fcb3f0fd1a9?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/fe3d21fb-42f1-4772-9f05-8fcb3f0fd1a9?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/fe3d21fb-42f1-4772-9f05-8fcb3f0fd1a9?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/fe3d21fb-42f1-4772-9f05-8fcb3f0fd1a9?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/fe3d21fb-42f1-4772-9f05-8fcb3f0fd1a9?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/fe3d21fb-42f1-4772-9f05-8fcb3f0fd1a9?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/fe3d21fb-42f1-4772-9f05-8fcb3f0fd1a9?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/28001)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#20211