mirror of
https://github.com/langgenius/dify-official-plugins.git
synced 2026-07-22 01:55:27 -04:00
MarkItDown plugin only works when FILES_URL is set to http://api:5001 (timeout error otherwise) #692
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @denver67136713tgr on GitHub (Oct 9, 2025).
Self Checks
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_URLto the internal API URL (e.g.,http://api:5001).If I set
FILES_URLto an external domain as recommended in the documentation, the plugin fails to process files and I receive a timeout error.Steps to reproduce:
Set
FILES_URLto an external domain (e.g.,https://example.com).Try to use the MarkItDown plugin.
The plugin fails with a timeout error.
Change
FILES_URLtohttp://api:5001.The plugin works as expected.
Expected behavior:
I expected the plugin to work regardless of whether
FILES_URLis set to an internal or external domain, as long asINTERNAL_FILES_URLis set correctly for internal access.Actual behavior:
The plugin only works when
FILES_URLis 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_URLandINTERNAL_FILES_URLso 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
@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

@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):
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.
@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:
Next Steps:
Thank you for your understanding and contribution!