MarkItDown plugin only works when FILES_URL is set to http://api:5001 (timeout error otherwise) #692

Closed
opened 2026-02-16 10:20:12 -05:00 by yindo · 4 comments
Owner

Originally created by @denver67136713tgr on GitHub (Oct 9, 2025).

Self Checks

  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues Dify issues & Dify Official Plugins, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.9.1

Plugin version

0.0.4

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

I have a question regarding the MarkItDown plugin and the FILES_URL setting.

In my environment, the MarkItDown plugin only works if I set FILES_URL to the internal API URL (e.g., http://api:5001).
If I set FILES_URL to an external domain as recommended in the documentation, the plugin fails to process files and I receive a timeout error.

Steps to reproduce:

  1. Set FILES_URL to an external domain (e.g., https://example.com).

  2. Try to use the MarkItDown plugin.

  3. The plugin fails with a timeout error.

  4. Change FILES_URL to http://api:5001.

  5. The plugin works as expected.

Expected behavior:
I expected the plugin to work regardless of whether FILES_URL is set to an internal or external domain, as long as INTERNAL_FILES_URL is set correctly for internal access.

Actual behavior:
The plugin only works when FILES_URL is set to the internal API URL.
When using an external domain, it results in a timeout error.

Is there a recommended way to configure FILES_URL and INTERNAL_FILES_URL so that the plugin works as intended?
Or is there something I might be missing in my setup?

✔️ Error log

"Error processing file XXXXX.pptx: Redirect response '302 Found' for url

Originally created by @denver67136713tgr on GitHub (Oct 9, 2025). ### Self Checks - [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 [Dify issues](https://github.com/langgenius/dify/issues) & [Dify Official Plugins](https://github.com/langgenius/dify-official-plugins/issues), including closed ones. - [x] I confirm that I am using English to submit this report (我已阅读并同意 [Language Policy](https://github.com/langgenius/dify/issues/1542)). - [x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.9.1 ### Plugin version 0.0.4 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce I have a question regarding the MarkItDown plugin and the FILES_URL setting. In my environment, the MarkItDown plugin only works if I set `FILES_URL` to the internal API URL (e.g., `http://api:5001`). If I set `FILES_URL` to an external domain as recommended in the documentation, the plugin fails to process files and I receive a timeout error. **Steps to reproduce:** 1. Set `FILES_URL` to an external domain (e.g., `https://example.com`). 2. Try to use the MarkItDown plugin. 3. The plugin fails with a timeout error. 4. Change `FILES_URL` to `http://api:5001`. 5. The plugin works as expected. **Expected behavior:** I expected the plugin to work regardless of whether `FILES_URL` is set to an internal or external domain, as long as `INTERNAL_FILES_URL` is set correctly for internal access. **Actual behavior:** The plugin only works when `FILES_URL` is set to the internal API URL. When using an external domain, it results in a timeout error. Is there a recommended way to configure `FILES_URL` and `INTERNAL_FILES_URL` so that the plugin works as intended? Or is there something I might be missing in my setup? ### ✔️ Error log "Error processing file XXXXX.pptx: Redirect response '302 Found' for url
yindo added the bugquestion labels 2026-02-16 10:20:12 -05:00
yindo closed this issue 2026-02-16 10:20:12 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Oct 9, 2025):

Hi @shuhei67! I'm Dosu and I’m helping the dify-official-plugins team.

The MarkItDown plugin (and similar plugins) require correct configuration of both FILES_URL and INTERNAL_FILES_URL for Docker deployments. FILES_URL should point to the public/external domain for browser access, while INTERNAL_FILES_URL must be set to the internal Docker service URL (like http://api:5001) so plugins can access files within the Docker network. If INTERNAL_FILES_URL is not set, plugins fall back to FILES_URL—which can cause timeouts or 302 redirect errors if the external domain is not reachable or is behind a proxy that issues redirects, which the plugin does not follow.

To resolve your issue, set:

Make sure port 5001 is exposed in your docker-compose.yaml, and restart your services after updating the .env file. This setup ensures plugins use the correct internal route and avoids redirect/timeouts when accessing files from within Docker. More details and the relevant code changes are documented in this merged PR and this config update.

To reply, just mention @dosu.


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

@dosubot[bot] commented on GitHub (Oct 9, 2025): <!-- Greeting --> Hi @shuhei67! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify-official-plugins team. <!-- Answer --> The MarkItDown plugin (and similar plugins) require correct configuration of both FILES_URL and INTERNAL_FILES_URL for Docker deployments. FILES_URL should point to the public/external domain for browser access, while INTERNAL_FILES_URL must be set to the internal Docker service URL (like http://api:5001) so plugins can access files within the Docker network. If INTERNAL_FILES_URL is not set, plugins fall back to FILES_URL—which can cause timeouts or 302 redirect errors if the external domain is not reachable or is behind a proxy that issues redirects, which the plugin does not follow. To resolve your issue, set: - FILES_URL to your external domain (e.g., https://example.com) for public access. - INTERNAL_FILES_URL to http://api:5001 for internal Docker communication. Make sure port 5001 is exposed in your docker-compose.yaml, and restart your services after updating the .env file. This setup ensures plugins use the correct internal route and avoids redirect/timeouts when accessing files from within Docker. More details and the relevant code changes are documented in [this merged PR](https://github.com/langgenius/dify/pull/21382) and [this config update](https://github.com/langgenius/dify/pull/26410). <!-- 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/afaa9523-0889-4dbf-a6e0-889e9cbda081?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/afaa9523-0889-4dbf-a6e0-889e9cbda081?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/afaa9523-0889-4dbf-a6e0-889e9cbda081?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/afaa9523-0889-4dbf-a6e0-889e9cbda081?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/afaa9523-0889-4dbf-a6e0-889e9cbda081?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/afaa9523-0889-4dbf-a6e0-889e9cbda081?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/afaa9523-0889-4dbf-a6e0-889e9cbda081?feedback_type=other)</sup>&nbsp;&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-official-plugins/issues/1815)
Author
Owner

@denver67136713tgr commented on GitHub (Oct 9, 2025):

​@Dosu
Thanks for the reply.
​I have INTERNAL_FILES_URL set to http://api:5001, but I still get an error unless I also set FILES_URL to http://api:5001.
​Any other ideas?

@denver67136713tgr commented on GitHub (Oct 9, 2025): ​@Dosu Thanks for the reply. ​I have INTERNAL_FILES_URL set to http://api:5001, but I still get an error unless I also set FILES_URL to http://api:5001. ​Any other ideas?
Author
Owner

@denver67136713tgr commented on GitHub (Oct 9, 2025):

Just to add — I’m seeing a similar issue with the Dify Extractor plugin. It doesn’t throw a timeout error like MarkItDown, but it still fails to process files when FILES_URL is set to the external domain. The plugin only works when I set FILES_URL to the internal API URL (http://api:5001), even though INTERNAL_FILES_URL is correctly configured.

@denver67136713tgr commented on GitHub (Oct 9, 2025): Just to add — I’m seeing a similar issue with the Dify Extractor plugin. It doesn’t throw a timeout error like MarkItDown, but it still fails to process files when FILES_URL is set to the external domain. The plugin only works when I set FILES_URL to the internal API URL (http://api:5001), even though INTERNAL_FILES_URL is correctly configured.
Author
Owner

@dosubot[bot] commented on GitHub (Oct 26, 2025):

Hi, @denver67136713tgr. I'm Dosu, and I'm helping the dify-official-plugins team manage their backlog and am marking this issue as stale.

Issue Summary:

  • You reported that the MarkItDown plugin only works without timeout when both FILES_URL and INTERNAL_FILES_URL are set to the internal API URL, contrary to the recommended setup.
  • The guidance is that FILES_URL should be the external domain for public access, and INTERNAL_FILES_URL the internal Docker URL to avoid timeouts.
  • Despite this, you still experience errors unless FILES_URL is also set to the internal URL.
  • You also noted a similar problem with the Dify Extractor plugin failing unless FILES_URL points internally.
  • You are seeking further advice on the correct configuration to avoid these issues.

Next Steps:

  • Please confirm if this issue is still relevant with the latest version of the dify-official-plugins repository by commenting here.
  • If no further updates are provided, I will automatically close this issue in 5 days.

Thank you for your understanding and contribution!

@dosubot[bot] commented on GitHub (Oct 26, 2025): Hi, @denver67136713tgr. I'm [Dosu](https://dosu.dev), and I'm helping the dify-official-plugins team manage their backlog and am marking this issue as stale. **Issue Summary:** - You reported that the MarkItDown plugin only works without timeout when both FILES_URL and INTERNAL_FILES_URL are set to the internal API URL, contrary to the recommended setup. - The guidance is that FILES_URL should be the external domain for public access, and INTERNAL_FILES_URL the internal Docker URL to avoid timeouts. - Despite this, you still experience errors unless FILES_URL is also set to the internal URL. - You also noted a similar problem with the Dify Extractor plugin failing unless FILES_URL points internally. - You are seeking further advice on the correct configuration to avoid these issues. **Next Steps:** - Please confirm if this issue is still relevant with the latest version of the dify-official-plugins repository by commenting here. - If no further updates are provided, I will automatically close this issue in 5 days. Thank you for your understanding and contribution!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#692