File validation failed for file #21258

Closed
opened 2026-02-21 20:11:38 -05:00 by yindo · 19 comments
Owner

Originally created by @SugarFatFree on GitHub (Dec 24, 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

1.11.1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

Request : http://172.29.246.34/v1/workflows/run

{
  "inputs": {
    "docFile": {
      "transfer_method": "remote_url",
      "url": "http://172.29.226.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=mqeadfin&Signature=Z9UcmibdGrqa406Vht0G4b%3D&Expires=1766569903",
      "type": "document"
    },
    "content": "#项目名称#"
  },
  "response_mode": "streaming",
  "user": "test"
}

✔️ Expected Behavior

Return success

Actual Behavior

{
"code": "invalid_param",
"message": "File validation failed for file: 7cceb74ed3c9a5d6.pdf",
"status": 400
}

Originally created by @SugarFatFree on GitHub (Dec 24, 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 1.11.1 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce Request : http://172.29.246.34/v1/workflows/run ``` { "inputs": { "docFile": { "transfer_method": "remote_url", "url": "http://172.29.226.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=mqeadfin&Signature=Z9UcmibdGrqa406Vht0G4b%3D&Expires=1766569903", "type": "document" }, "content": "#项目名称#" }, "response_mode": "streaming", "user": "test" } ``` ### ✔️ Expected Behavior Return success ### ❌ Actual Behavior { "code": "invalid_param", "message": "File validation failed for file: 7cceb74ed3c9a5d6.pdf", "status": 400 }
yindo added the 🐞 bug label 2026-02-21 20:11:38 -05:00
yindo closed this issue 2026-02-21 20:11:38 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Dec 24, 2025):

The "File validation failed" error for remote_url uploads in Dify is usually caused by one of these issues:

  1. The type field in your input should be set to "custom" (not "document") when using remote_url. Using "document" will trigger a validation error like the one you saw. Try changing "type": "custom" in your request and see if it succeeds [source].

  2. For remote files, the API expects you to first call the (undocumented) /api/remote-files/upload endpoint with your file URL. This endpoint downloads and validates the file, then returns an upload_file_id. You should use this upload_file_id in your workflow request instead of passing the raw URL. The web UI does this automatically, but API users must do it manually [source].

  3. Make sure the remote URL is accessible from inside your Docker container. Try running curl or wget from within the container to verify the file can be downloaded [source].

  4. Dify enforces stricter validation on file extension and mime_type. If the file is missing an extension or has an unexpected type, validation will fail. Also, check that the file size does not exceed any configured limits [source].

Try these steps:

  • Change "type": "document" to "type": "custom" in your input.
  • Call /api/remote-files/upload with your file URL, then use the returned upload_file_id in your workflow request.
  • Test the file URL from inside your Docker container.
  • Check backend logs for more detailed error messages if the issue persists.

Let me know if you need help with the exact API calls or troubleshooting any of these steps.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Chat with Dosu Open in Cursor Join Discord Share on X

@dosubot[bot] commented on GitHub (Dec 24, 2025): <!-- Answer --> The "File validation failed" error for remote_url uploads in Dify is usually caused by one of these issues: 1. The type field in your input should be set to "custom" (not "document") when using remote_url. Using "document" will trigger a validation error like the one you saw. Try changing `"type": "custom"` in your request and see if it succeeds [[source]](https://github.com/langgenius/dify/issues/11671). 2. For remote files, the API expects you to first call the (undocumented) `/api/remote-files/upload` endpoint with your file URL. This endpoint downloads and validates the file, then returns an `upload_file_id`. You should use this `upload_file_id` in your workflow request instead of passing the raw URL. The web UI does this automatically, but API users must do it manually [[source]](https://github.com/langgenius/dify/issues/28654). 3. Make sure the remote URL is accessible from inside your Docker container. Try running `curl` or `wget` from within the container to verify the file can be downloaded [[source]](https://github.com/langgenius/dify/discussions/24281). 4. Dify enforces stricter validation on file extension and mime_type. If the file is missing an extension or has an unexpected type, validation will fail. Also, check that the file size does not exceed any configured limits [[source]](https://github.com/langgenius/dify/blob/18d69775ef6750e407409973ca4412e763bb214e/api/core/file/file_manager.py#L68-L156). Try these steps: - Change `"type": "document"` to `"type": "custom"` in your input. - Call `/api/remote-files/upload` with your file URL, then use the returned `upload_file_id` in your workflow request. - Test the file URL from inside your Docker container. - Check backend logs for more detailed error messages if the issue persists. Let me know if you need help with the exact API calls or troubleshooting any of these steps. <!-- 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/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=other)</sup> [![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Open in Cursor](https://dosu.dev/dosu-in-cursor.svg)](https://cursor.com/link/prompt?text=The%20%22File%20validation%20failed%22%20error%20for%20remote_url%20uploads%20in%20Dify%20is%20usually%20caused%20by%20one%20of%20these%20issues%3A%0A%0A1.%20The%20type%20field%20in%20your%20input%20should%20be%20set%20to%20%22custom%22%20%28not%20%22document%22%29%20when%20using%20remote_url.%20Using%20%22document%22%20will%20trigger%20a%20validation%20error%20like%20the%20one%20you%20saw.%20Try%20changing%20%60%22type%22%3A%20%22custom%22%60%20in%20your%20request%20and%20see%20if%20it%20succeeds%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/11671%29.%0A%0A2.%20For%20remote%20files%2C%20the%20API%20expects%20you%20to%20first%20call%20the%20%28undocumented%29%20%60/api/remote-files/upload%60%20endpoint%20with%20your%20file%20URL.%20This%20endpoint%20downloads%20and%20validates%20the%20file%2C%20then%20returns%20an%20%60upload_file_id%60.%20You%20should%20use%20this%20%60upload_file_id%60%20in%20your%20workflow%20request%20instead%20of%20passing%20the%20raw%20URL.%20The%20web%20UI%20does%20this%20automatically%2C%20but%20API%20users%20must%20do%20it%20manually%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/28654%29.%0A%0A3.%20Make%20sure%20the%20remote%20URL%20is%20accessible%20from%20inside%20your%20Docker%20container.%20Try%20running%20%60curl%60%20or%20%60wget%60%20from%20within%20the%20container%20to%20verify%20the%20file%20can%20be%20downloaded%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/discussions/24281%29.%0A%0A4.%20Dify%20enforces%20stricter%20validation%20on%20file%20extension%20and%20mime_type.%20If%20the%20file%20is%20missing%20an%20extension%20or%20has%20an%20unexpected%20type%2C%20validation%20will%20fail.%20Also%2C%20check%20that%20the%20file%20size%20does%20not%20exceed%20any%20configured%20limits%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/blob/18d69775ef6750e407409973ca4412e763bb214e/api/core/file/file_manager.py%23L68-L156%29.%0A%0ATry%20these%20steps%3A%0A-%20Change%20%60%22type%22%3A%20%22document%22%60%20to%20%60%22type%22%3A%20%22custom%22%60%20in%20your%20input.%0A-%20Call%20%60/api/remote-files/upload%60%20with%20your%20file%20URL%2C%20then%20use%20the%20returned%20%60upload_file_id%60%20in%20your%20workflow%20request.%0A-%20Test%20the%20file%20URL%20from%20inside%20your%20Docker%20container.%0A-%20Check%20backend%20logs%20for%20more%20detailed%20error%20messages%20if%20the%20issue%20persists.%0A%0ALet%20me%20know%20if%20you%20need%20help%20with%20the%20exact%20API%20calls%20or%20troubleshooting%20any%20of%20these%20steps.)&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/30100)
Author
Owner

@SugarFatFree commented on GitHub (Dec 24, 2025):

The "File validation failed" error for remote_url uploads in Dify is usually caused by one of these issues:

  1. The type field in your input should be set to "custom" (not "document") when using remote_url. Using "document" will trigger a validation error like the one you saw. Try changing "type": "custom" in your request and see if it succeeds [source].
  2. For remote files, the API expects you to first call the (undocumented) /api/remote-files/upload endpoint with your file URL. This endpoint downloads and validates the file, then returns an upload_file_id. You should use this upload_file_id in your workflow request instead of passing the raw URL. The web UI does this automatically, but API users must do it manually [source].
  3. Make sure the remote URL is accessible from inside your Docker container. Try running curl or wget from within the container to verify the file can be downloaded [source].
  4. Dify enforces stricter validation on file extension and mime_type. If the file is missing an extension or has an unexpected type, validation will fail. Also, check that the file size does not exceed any configured limits [source].

Try these steps:

  • Change "type": "document" to "type": "custom" in your input.
  • Call /api/remote-files/upload with your file URL, then use the returned upload_file_id in your workflow request.
  • Test the file URL from inside your Docker container.
  • Check backend logs for more detailed error messages if the issue persists.

Let me know if you need help with the exact API calls or troubleshooting any of these steps.

To reply, just mention @dosu.

How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Chat with Dosu Open in Cursor Join Discord Share on X

Could not find interface documentation for interface "/api/remote-files/upload" and do not know where to get app tokens required for this interface.

@SugarFatFree commented on GitHub (Dec 24, 2025): > The "File validation failed" error for remote_url uploads in Dify is usually caused by one of these issues: > > 1. The type field in your input should be set to "custom" (not "document") when using remote_url. Using "document" will trigger a validation error like the one you saw. Try changing `"type": "custom"` in your request and see if it succeeds [[source]](https://github.com/langgenius/dify/issues/11671). > 2. For remote files, the API expects you to first call the (undocumented) `/api/remote-files/upload` endpoint with your file URL. This endpoint downloads and validates the file, then returns an `upload_file_id`. You should use this `upload_file_id` in your workflow request instead of passing the raw URL. The web UI does this automatically, but API users must do it manually [[source]](https://github.com/langgenius/dify/issues/28654). > 3. Make sure the remote URL is accessible from inside your Docker container. Try running `curl` or `wget` from within the container to verify the file can be downloaded [[source]](https://github.com/langgenius/dify/discussions/24281). > 4. Dify enforces stricter validation on file extension and mime_type. If the file is missing an extension or has an unexpected type, validation will fail. Also, check that the file size does not exceed any configured limits [[source]](https://github.com/langgenius/dify/blob/18d69775ef6750e407409973ca4412e763bb214e/api/core/file/file_manager.py#L68-L156). > > Try these steps: > > * Change `"type": "document"` to `"type": "custom"` in your input. > * Call `/api/remote-files/upload` with your file URL, then use the returned `upload_file_id` in your workflow request. > * Test the file URL from inside your Docker container. > * Check backend logs for more detailed error messages if the issue persists. > > Let me know if you need help with the exact API calls or troubleshooting any of these steps. > > _To reply, just mention [@dosu](https://go.dosu.dev/dosubot)._ > > How did I do? [Good](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/ad8d7c72-a613-4f46-884a-79242c76ca3b?feedback_type=other) > > [![Chat with Dosu](https://camo.githubusercontent.com/7c571478962a6b8a5d47cac74b6824c75e4f6731bba52377e6007f9150462923/68747470733a2f2f646f73752e6465762f646f73752d636861742d62616467652e737667)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github) [![Open in Cursor](https://camo.githubusercontent.com/bdf7dbded65ee585887f47e5fd6fa099ea0933088b4b03d02e83b4def50154d4/68747470733a2f2f646f73752e6465762f646f73752d696e2d637572736f722e737667)](https://cursor.com/link/prompt?text=The%20%22File%20validation%20failed%22%20error%20for%20remote_url%20uploads%20in%20Dify%20is%20usually%20caused%20by%20one%20of%20these%20issues%3A%0A%0A1.%20The%20type%20field%20in%20your%20input%20should%20be%20set%20to%20%22custom%22%20%28not%20%22document%22%29%20when%20using%20remote_url.%20Using%20%22document%22%20will%20trigger%20a%20validation%20error%20like%20the%20one%20you%20saw.%20Try%20changing%20%60%22type%22%3A%20%22custom%22%60%20in%20your%20request%20and%20see%20if%20it%20succeeds%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/11671%29.%0A%0A2.%20For%20remote%20files%2C%20the%20API%20expects%20you%20to%20first%20call%20the%20%28undocumented%29%20%60/api/remote-files/upload%60%20endpoint%20with%20your%20file%20URL.%20This%20endpoint%20downloads%20and%20validates%20the%20file%2C%20then%20returns%20an%20%60upload_file_id%60.%20You%20should%20use%20this%20%60upload_file_id%60%20in%20your%20workflow%20request%20instead%20of%20passing%20the%20raw%20URL.%20The%20web%20UI%20does%20this%20automatically%2C%20but%20API%20users%20must%20do%20it%20manually%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/28654%29.%0A%0A3.%20Make%20sure%20the%20remote%20URL%20is%20accessible%20from%20inside%20your%20Docker%20container.%20Try%20running%20%60curl%60%20or%20%60wget%60%20from%20within%20the%20container%20to%20verify%20the%20file%20can%20be%20downloaded%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/discussions/24281%29.%0A%0A4.%20Dify%20enforces%20stricter%20validation%20on%20file%20extension%20and%20mime_type.%20If%20the%20file%20is%20missing%20an%20extension%20or%20has%20an%20unexpected%20type%2C%20validation%20will%20fail.%20Also%2C%20check%20that%20the%20file%20size%20does%20not%20exceed%20any%20configured%20limits%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/blob/18d69775ef6750e407409973ca4412e763bb214e/api/core/file/file_manager.py%23L68-L156%29.%0A%0ATry%20these%20steps%3A%0A-%20Change%20%60%22type%22%3A%20%22document%22%60%20to%20%60%22type%22%3A%20%22custom%22%60%20in%20your%20input.%0A-%20Call%20%60/api/remote-files/upload%60%20with%20your%20file%20URL%2C%20then%20use%20the%20returned%20%60upload_file_id%60%20in%20your%20workflow%20request.%0A-%20Test%20the%20file%20URL%20from%20inside%20your%20Docker%20container.%0A-%20Check%20backend%20logs%20for%20more%20detailed%20error%20messages%20if%20the%20issue%20persists.%0A%0ALet%20me%20know%20if%20you%20need%20help%20with%20the%20exact%20API%20calls%20or%20troubleshooting%20any%20of%20these%20steps.) [![Join Discord](https://camo.githubusercontent.com/7d2066700925db1e370d956834f9ea0e5bc92cecbe84963fbd2a363e45091b4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6a6f696e2d3538363546323f6c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465266c6162656c3d)](https://go.dosu.dev/discord-bot) [![Share on X](https://camo.githubusercontent.com/a8bd7f3fcf3f5e3bd124eee9ae50ae2ac17b40971726665ac2121d48f9aee155/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f582d73686172652d626c61636b)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/30100) Could not find interface documentation for interface "/api/remote-files/upload" and do not know where to get app tokens required for this interface.
Author
Owner

@dosubot[bot] commented on GitHub (Dec 24, 2025):

There is no official documentation for the /api/remote-files/upload endpoint, but it is required for remote file uploads via API. To use it, send a POST request with a JSON body like {"url": "https://your-remote-file-url"} and include an Authorization header with a Bearer app token (e.g., Authorization: Bearer app-xxxx). The endpoint will download and validate the file, then return an upload_file_id, which you should use in your workflow or chat-messages API call instead of the raw URL. The web UI handles this automatically, but API users must do it manually.

App tokens are the same as those used for other Dify API endpoints—typically generated in the Dify web UI under your app's settings or API keys section. If you can't find where to generate an app token, check your Dify admin panel or deployment documentation for "API Key" or "App Token" management.

For more details and example API calls, see this discussion: Dify Discussion #28998 and Issue #28654.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Chat with Dosu Open in Cursor Join Discord Share on X

@dosubot[bot] commented on GitHub (Dec 24, 2025): <!-- Answer --> There is no official documentation for the /api/remote-files/upload endpoint, but it is required for remote file uploads via API. To use it, send a POST request with a JSON body like {"url": "https://your-remote-file-url"} and include an Authorization header with a Bearer app token (e.g., Authorization: Bearer app-xxxx). The endpoint will download and validate the file, then return an upload_file_id, which you should use in your workflow or chat-messages API call instead of the raw URL. The web UI handles this automatically, but API users must do it manually. App tokens are the same as those used for other Dify API endpoints—typically generated in the Dify web UI under your app's settings or API keys section. If you can't find where to generate an app token, check your Dify admin panel or deployment documentation for "API Key" or "App Token" management. For more details and example API calls, see this discussion: [Dify Discussion #28998](https://github.com/langgenius/dify/discussions/28998) and [Issue #28654](https://github.com/langgenius/dify/issues/28654). <!-- 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/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=other)</sup> [![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Open in Cursor](https://dosu.dev/dosu-in-cursor.svg)](https://cursor.com/link/prompt?text=There%20is%20no%20official%20documentation%20for%20the%20/api/remote-files/upload%20endpoint%2C%20but%20it%20is%20required%20for%20remote%20file%20uploads%20via%20API.%20To%20use%20it%2C%20send%20a%20POST%20request%20with%20a%20JSON%20body%20like%20%7B%22url%22%3A%20%22https%3A//your-remote-file-url%22%7D%20and%20include%20an%20Authorization%20header%20with%20a%20Bearer%20app%20token%20%28e.g.%2C%20Authorization%3A%20Bearer%20app-xxxx%29.%20The%20endpoint%20will%20download%20and%20validate%20the%20file%2C%20then%20return%20an%20upload_file_id%2C%20which%20you%20should%20use%20in%20your%20workflow%20or%20chat-messages%20API%20call%20instead%20of%20the%20raw%20URL.%20The%20web%20UI%20handles%20this%20automatically%2C%20but%20API%20users%20must%20do%20it%20manually.%20%0A%0AApp%20tokens%20are%20the%20same%20as%20those%20used%20for%20other%20Dify%20API%20endpoints%E2%80%94typically%20generated%20in%20the%20Dify%20web%20UI%20under%20your%20app%27s%20settings%20or%20API%20keys%20section.%20If%20you%20can%27t%20find%20where%20to%20generate%20an%20app%20token%2C%20check%20your%20Dify%20admin%20panel%20or%20deployment%20documentation%20for%20%22API%20Key%22%20or%20%22App%20Token%22%20management.%20%0A%0AFor%20more%20details%20and%20example%20API%20calls%2C%20see%20this%20discussion%3A%20%5BDify%20Discussion%20%2328998%5D%28https%3A//github.com/langgenius/dify/discussions/28998%29%20and%20%5BIssue%20%2328654%5D%28https%3A//github.com/langgenius/dify/issues/28654%29.)&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/30100)
Author
Owner

@SugarFatFree commented on GitHub (Dec 24, 2025):

There is no official documentation for the /api/remote-files/upload endpoint, but it is required for remote file uploads via API. To use it, send a POST request with a JSON body like {"url": "https://your-remote-file-url"} and include an Authorization header with a Bearer app token (e.g., Authorization: Bearer app-xxxx). The endpoint will download and validate the file, then return an upload_file_id, which you should use in your workflow or chat-messages API call instead of the raw URL. The web UI handles this automatically, but API users must do it manually.

App tokens are the same as those used for other Dify API endpoints—typically generated in the Dify web UI under your app's settings or API keys section. If you can't find where to generate an app token, check your Dify admin panel or deployment documentation for "API Key" or "App Token" management.

For more details and example API calls, see this discussion: Dify Discussion #28998 and Issue #28654.

To reply, just mention @dosu.

How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Chat with Dosu Open in Cursor Join Discord Share on X

Using an api key within the app is not feasible,Error: "App token is missing."

@SugarFatFree commented on GitHub (Dec 24, 2025): > There is no official documentation for the /api/remote-files/upload endpoint, but it is required for remote file uploads via API. To use it, send a POST request with a JSON body like {"url": "[https://your-remote-file-url"}](https://your-remote-file-url%22%7D) and include an Authorization header with a Bearer app token (e.g., Authorization: Bearer app-xxxx). The endpoint will download and validate the file, then return an upload_file_id, which you should use in your workflow or chat-messages API call instead of the raw URL. The web UI handles this automatically, but API users must do it manually. > > App tokens are the same as those used for other Dify API endpoints—typically generated in the Dify web UI under your app's settings or API keys section. If you can't find where to generate an app token, check your Dify admin panel or deployment documentation for "API Key" or "App Token" management. > > For more details and example API calls, see this discussion: [Dify Discussion #28998](https://github.com/langgenius/dify/discussions/28998) and [Issue #28654](https://github.com/langgenius/dify/issues/28654). > > _To reply, just mention [@dosu](https://go.dosu.dev/dosubot)._ > > How did I do? [Good](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/51a1058a-f879-40db-ab30-cfbdd7d7433f?feedback_type=other) > > [![Chat with Dosu](https://camo.githubusercontent.com/7c571478962a6b8a5d47cac74b6824c75e4f6731bba52377e6007f9150462923/68747470733a2f2f646f73752e6465762f646f73752d636861742d62616467652e737667)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github) [![Open in Cursor](https://camo.githubusercontent.com/bdf7dbded65ee585887f47e5fd6fa099ea0933088b4b03d02e83b4def50154d4/68747470733a2f2f646f73752e6465762f646f73752d696e2d637572736f722e737667)](https://cursor.com/link/prompt?text=There%20is%20no%20official%20documentation%20for%20the%20/api/remote-files/upload%20endpoint%2C%20but%20it%20is%20required%20for%20remote%20file%20uploads%20via%20API.%20To%20use%20it%2C%20send%20a%20POST%20request%20with%20a%20JSON%20body%20like%20%7B%22url%22%3A%20%22https%3A//your-remote-file-url%22%7D%20and%20include%20an%20Authorization%20header%20with%20a%20Bearer%20app%20token%20%28e.g.%2C%20Authorization%3A%20Bearer%20app-xxxx%29.%20The%20endpoint%20will%20download%20and%20validate%20the%20file%2C%20then%20return%20an%20upload_file_id%2C%20which%20you%20should%20use%20in%20your%20workflow%20or%20chat-messages%20API%20call%20instead%20of%20the%20raw%20URL.%20The%20web%20UI%20handles%20this%20automatically%2C%20but%20API%20users%20must%20do%20it%20manually.%20%0A%0AApp%20tokens%20are%20the%20same%20as%20those%20used%20for%20other%20Dify%20API%20endpoints%E2%80%94typically%20generated%20in%20the%20Dify%20web%20UI%20under%20your%20app%27s%20settings%20or%20API%20keys%20section.%20If%20you%20can%27t%20find%20where%20to%20generate%20an%20app%20token%2C%20check%20your%20Dify%20admin%20panel%20or%20deployment%20documentation%20for%20%22API%20Key%22%20or%20%22App%20Token%22%20management.%20%0A%0AFor%20more%20details%20and%20example%20API%20calls%2C%20see%20this%20discussion%3A%20%5BDify%20Discussion%20%2328998%5D%28https%3A//github.com/langgenius/dify/discussions/28998%29%20and%20%5BIssue%20%2328654%5D%28https%3A//github.com/langgenius/dify/issues/28654%29.) [![Join Discord](https://camo.githubusercontent.com/7d2066700925db1e370d956834f9ea0e5bc92cecbe84963fbd2a363e45091b4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6a6f696e2d3538363546323f6c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465266c6162656c3d)](https://go.dosu.dev/discord-bot) [![Share on X](https://camo.githubusercontent.com/a8bd7f3fcf3f5e3bd124eee9ae50ae2ac17b40971726665ac2121d48f9aee155/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f582d73686172652d626c61636b)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/30100) Using an api key within the app is not feasible,Error: "App token is missing."
Author
Owner

@fatelei commented on GitHub (Dec 24, 2025):

Image Image
@fatelei commented on GitHub (Dec 24, 2025): <img width="3744" height="1832" alt="Image" src="https://github.com/user-attachments/assets/8076aa0b-74b3-473e-8b2e-dc063b306e2e" /> <img width="3786" height="1882" alt="Image" src="https://github.com/user-attachments/assets/553a0a04-7746-4f4a-a3db-f5d221d7b93f" />
Author
Owner

@SugarFatFree commented on GitHub (Dec 24, 2025):

Image Image

This API key is not feasible. url(http://ip/api/remote-files/upload)

@SugarFatFree commented on GitHub (Dec 24, 2025): > <img alt="Image" width="2000" height="1832" src="https://private-user-images.githubusercontent.com/961094/530102908-8076aa0b-74b3-473e-8b2e-dc063b306e2e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY2Mjc1NDUsIm5iZiI6MTc2NjYyNzI0NSwicGF0aCI6Ii85NjEwOTQvNTMwMTAyOTA4LTgwNzZhYTBiLTc0YjMtNDczZS04YjJlLWRjMDYzYjMwNmUyZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNVQwMTQ3MjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMjRmZWUxZGU0MjhhMzkxMDQ3MDk4MzUyMTdkZDhiMGRmOGIyOTQ2MGZlZmVhMTFkODM5YjIzMjZmYTIyMjkxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.T00k7ssQjLEsYgTRd52qe6Gy6h91dnIvJbUj1ZFZiNE"> <img alt="Image" width="2000" height="1882" src="https://private-user-images.githubusercontent.com/961094/530102956-553a0a04-7746-4f4a-a3db-f5d221d7b93f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY2Mjc1NDUsIm5iZiI6MTc2NjYyNzI0NSwicGF0aCI6Ii85NjEwOTQvNTMwMTAyOTU2LTU1M2EwYTA0LTc3NDYtNGY0YS1hM2RiLWY1ZDIyMWQ3YjkzZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNVQwMTQ3MjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03ZmJmOWNlZWY3MmRmMzJhMTU4MjE0MDI0MGQxOGI1ODViM2I2NjdhY2U3NDFkZmYzZGRmNmY5MzczMzMyZjkzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WjAgy2W5KOIRRdzbZxTxV3W5Q8ZrBbw2bNqBQIvdPQs"> This API key is not feasible. url(http://ip/api/remote-files/upload)
Author
Owner

@fatelei commented on GitHub (Dec 24, 2025):

Image Image

This API key is not feasible. url(http://ip/api/remote-files/upload)

inspect the code

def _is_file_valid_with_config(
    *,
    input_file_type: str,
    file_extension: str,
    file_transfer_method: FileTransferMethod,
    config: FileUploadConfig,
) -> bool:
    # FIXME(QIN2DIM): Always allow tool files (files generated by the assistant/model)
    # These are internally generated and should bypass user upload restrictions
    if file_transfer_method == FileTransferMethod.TOOL_FILE:
        return True

    if (
        config.allowed_file_types
        and input_file_type not in config.allowed_file_types
        and input_file_type != FileType.CUSTOM
    ):
        return False

    if (
        input_file_type == FileType.CUSTOM
        and config.allowed_file_extensions is not None
        and file_extension not in config.allowed_file_extensions
    ):
        return False

    if input_file_type == FileType.IMAGE:
        if (
            config.image_config
            and config.image_config.transfer_methods
            and file_transfer_method not in config.image_config.transfer_methods
        ):
            return False
    elif config.allowed_file_upload_methods and file_transfer_method not in config.allowed_file_upload_methods:
        return False

    return True
``` lead the error `File validation failed for file: 7cceb74ed3c9a5d6.pdf"`

please check the workflow file upload config

![Image](https://github.com/user-attachments/assets/2c889793-9a48-4fb3-8b4b-e466061e40a9)

check the `Upload File Types` config
@fatelei commented on GitHub (Dec 24, 2025): > > <img alt="Image" width="2000" height="1832" src="https://private-user-images.githubusercontent.com/961094/530102908-8076aa0b-74b3-473e-8b2e-dc063b306e2e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY2Mjc1NDUsIm5iZiI6MTc2NjYyNzI0NSwicGF0aCI6Ii85NjEwOTQvNTMwMTAyOTA4LTgwNzZhYTBiLTc0YjMtNDczZS04YjJlLWRjMDYzYjMwNmUyZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNVQwMTQ3MjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMjRmZWUxZGU0MjhhMzkxMDQ3MDk4MzUyMTdkZDhiMGRmOGIyOTQ2MGZlZmVhMTFkODM5YjIzMjZmYTIyMjkxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.T00k7ssQjLEsYgTRd52qe6Gy6h91dnIvJbUj1ZFZiNE"> <img alt="Image" width="2000" height="1882" src="https://private-user-images.githubusercontent.com/961094/530102956-553a0a04-7746-4f4a-a3db-f5d221d7b93f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY2Mjc1NDUsIm5iZiI6MTc2NjYyNzI0NSwicGF0aCI6Ii85NjEwOTQvNTMwMTAyOTU2LTU1M2EwYTA0LTc3NDYtNGY0YS1hM2RiLWY1ZDIyMWQ3YjkzZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNVQwMTQ3MjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03ZmJmOWNlZWY3MmRmMzJhMTU4MjE0MDI0MGQxOGI1ODViM2I2NjdhY2U3NDFkZmYzZGRmNmY5MzczMzMyZjkzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WjAgy2W5KOIRRdzbZxTxV3W5Q8ZrBbw2bNqBQIvdPQs"> > > This API key is not feasible. url([http://ip/api/remote-files/upload)](http://ip/api/remote-files/upload%EF%BC%89) inspect the code ```python def _is_file_valid_with_config( *, input_file_type: str, file_extension: str, file_transfer_method: FileTransferMethod, config: FileUploadConfig, ) -> bool: # FIXME(QIN2DIM): Always allow tool files (files generated by the assistant/model) # These are internally generated and should bypass user upload restrictions if file_transfer_method == FileTransferMethod.TOOL_FILE: return True if ( config.allowed_file_types and input_file_type not in config.allowed_file_types and input_file_type != FileType.CUSTOM ): return False if ( input_file_type == FileType.CUSTOM and config.allowed_file_extensions is not None and file_extension not in config.allowed_file_extensions ): return False if input_file_type == FileType.IMAGE: if ( config.image_config and config.image_config.transfer_methods and file_transfer_method not in config.image_config.transfer_methods ): return False elif config.allowed_file_upload_methods and file_transfer_method not in config.allowed_file_upload_methods: return False return True ``` lead the error `File validation failed for file: 7cceb74ed3c9a5d6.pdf"` please check the workflow file upload config ![Image](https://github.com/user-attachments/assets/2c889793-9a48-4fb3-8b4b-e466061e40a9) check the `Upload File Types` config
Author
Owner

@SugarFatFree commented on GitHub (Dec 25, 2025):

图像 图像

此 API 密钥不可用。url(http://ip/api/remote-files/upload)

检查代码

def _is_file_valid_with_config(
*,
input_file_type: str,
file_extension: str,
file_transfer_method: FileTransferMethod,
config: FileUploadConfig,
) -> bool:
# FIXME(QIN2DIM): Always allow tool files (files generated by the assistant/model)
# These are internally generated and should bypass user upload restrictions
if file_transfer_method == FileTransferMethod.TOOL_FILE:
return True

if (
    config.allowed_file_types
    and input_file_type not in config.allowed_file_types
    and input_file_type != FileType.CUSTOM
):
    return False

if (
    input_file_type == FileType.CUSTOM
    and config.allowed_file_extensions is not None
    and file_extension not in config.allowed_file_extensions
):
    return False

if input_file_type == FileType.IMAGE:
    if (
        config.image_config
        and config.image_config.transfer_methods
        and file_transfer_method not in config.image_config.transfer_methods
    ):
        return False
elif config.allowed_file_upload_methods and file_transfer_method not in config.allowed_file_upload_methods:
    return False

return True

``` lead the error File validation failed for file: 7cceb74ed3c9a5d6.pdf"

please check the workflow file upload config

Image

check the Upload File Types config

This is a curl command.

curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{
      "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264"
    }'
@SugarFatFree commented on GitHub (Dec 25, 2025): > > > <img alt="图像" width="2000" height="1832" src="https://private-user-images.githubusercontent.com/961094/530102908-8076aa0b-74b3-473e-8b2e-dc063b306e2e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY2Mjc1NDUsIm5iZiI6MTc2NjYyNzI0NSwicGF0aCI6Ii85NjEwOTQvNTMwMTAyOTA4LTgwNzZhYTBiLTc0YjMtNDczZS04YjJlLWRjMDYzYjMwNmUyZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNVQwMTQ3MjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMjRmZWUxZGU0MjhhMzkxMDQ3MDk4MzUyMTdkZDhiMGRmOGIyOTQ2MGZlZmVhMTFkODM5YjIzMjZmYTIyMjkxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.T00k7ssQjLEsYgTRd52qe6Gy6h91dnIvJbUj1ZFZiNE"> <img alt="图像" width="2000" height="1882" src="https://private-user-images.githubusercontent.com/961094/530102956-553a0a04-7746-4f4a-a3db-f5d221d7b93f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY2Mjc1NDUsIm5iZiI6MTc2NjYyNzI0NSwicGF0aCI6Ii85NjEwOTQvNTMwMTAyOTU2LTU1M2EwYTA0LTc3NDYtNGY0YS1hM2RiLWY1ZDIyMWQ3YjkzZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNVQwMTQ3MjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03ZmJmOWNlZWY3MmRmMzJhMTU4MjE0MDI0MGQxOGI1ODViM2I2NjdhY2U3NDFkZmYzZGRmNmY5MzczMzMyZjkzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WjAgy2W5KOIRRdzbZxTxV3W5Q8ZrBbw2bNqBQIvdPQs"> > > > > > > 此 API 密钥不可用。url([http://ip/api/remote-files/upload)](http://ip/api/remote-files/upload%EF%BC%89) > > 检查代码 > > def _is_file_valid_with_config( > *, > input_file_type: str, > file_extension: str, > file_transfer_method: FileTransferMethod, > config: FileUploadConfig, > ) -> bool: > # FIXME(QIN2DIM): Always allow tool files (files generated by the assistant/model) > # These are internally generated and should bypass user upload restrictions > if file_transfer_method == FileTransferMethod.TOOL_FILE: > return True > > if ( > config.allowed_file_types > and input_file_type not in config.allowed_file_types > and input_file_type != FileType.CUSTOM > ): > return False > > if ( > input_file_type == FileType.CUSTOM > and config.allowed_file_extensions is not None > and file_extension not in config.allowed_file_extensions > ): > return False > > if input_file_type == FileType.IMAGE: > if ( > config.image_config > and config.image_config.transfer_methods > and file_transfer_method not in config.image_config.transfer_methods > ): > return False > elif config.allowed_file_upload_methods and file_transfer_method not in config.allowed_file_upload_methods: > return False > > return True > ``` lead the error `File validation failed for file: 7cceb74ed3c9a5d6.pdf"` > > please check the workflow file upload config > > ![Image](https://github.com/user-attachments/assets/2c889793-9a48-4fb3-8b4b-e466061e40a9) > > check the `Upload File Types` config This is a curl command. ``` curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{ "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264" }' ```
Author
Owner

@SugarFatFree commented on GitHub (Dec 25, 2025):

this is workflow,no features

@SugarFatFree commented on GitHub (Dec 25, 2025): this is workflow,no features
Author
Owner

@fatelei commented on GitHub (Dec 25, 2025):

this is workflow,no features

in chinese, this is "功能"

@fatelei commented on GitHub (Dec 25, 2025): > this is workflow,no features in chinese, this is "功能"
Author
Owner

@SugarFatFree commented on GitHub (Dec 25, 2025):

this is workflow,no features

in chinese, this is "功能"

I know. I mean, it doesn't exist in workflow, it exists in chatflow.

@SugarFatFree commented on GitHub (Dec 25, 2025): > > this is workflow,no features > > in chinese, this is "功能" I know. I mean, it doesn't exist in workflow, it exists in chatflow.
Author
Owner

@fatelei commented on GitHub (Dec 25, 2025):

this is workflow,no features

in chinese, this is "功能"

I know. I mean, it doesn't exist in workflow, it exists in chatflow.

Image Image Image
@fatelei commented on GitHub (Dec 25, 2025): > > > this is workflow,no features > > > > > > in chinese, this is "功能" > > I know. I mean, it doesn't exist in workflow, it exists in chatflow. <img width="1620" height="1774" alt="Image" src="https://github.com/user-attachments/assets/24445a82-ecec-4e08-8471-b4a3aa850762" /> <img width="2232" height="1112" alt="Image" src="https://github.com/user-attachments/assets/18890a56-b1fb-4c2a-9575-be123fcc9ca3" /> <img width="1492" height="1900" alt="Image" src="https://github.com/user-attachments/assets/1c13879c-232a-421f-9f2c-87cc00612001" />
Author
Owner

@SugarFatFree commented on GitHub (Dec 25, 2025):

this is workflow,no features

in chinese, this is "功能"

I know. I mean, it doesn't exist in workflow, it exists in chatflow.

Image Image Image

This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing.

curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{
      "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264"
    }'
@SugarFatFree commented on GitHub (Dec 25, 2025): > > > > this is workflow,no features > > > > > > > > > in chinese, this is "功能" > > > > > > I know. I mean, it doesn't exist in workflow, it exists in chatflow. > > <img alt="Image" width="1620" height="1774" src="https://private-user-images.githubusercontent.com/961094/530247638-24445a82-ecec-4e08-8471-b4a3aa850762.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjM4LTI0NDQ1YTgyLWVjZWMtNGUwOC04NDcxLWI0YTNhYTg1MDc2Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MGE0NGIwNWFjNTEzOWNiZWMyNGE2Zjk1Y2M0YWVmMGQwYjA2ZTRmODZhYTZlNDBjOWJhNDc0MzEzYmIxMTNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2ay_vHJOY_3blBNlbhkdzS2DEwHd4ljGznzXsvPQkP0"> <img alt="Image" width="2000" height="1112" src="https://private-user-images.githubusercontent.com/961094/530247671-18890a56-b1fb-4c2a-9575-be123fcc9ca3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjcxLTE4ODkwYTU2LWIxZmItNGMyYS05NTc1LWJlMTIzZmNjOWNhMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04N2E3NTE3ZjMyMmEwZGRmNWIyMWQwMDI3OTYzNWYwYjk0YTZiZGIwMDc2N2FjOWQ3YTc1M2FiNzA3ZDFhMTNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.nPOJXQT5I40pwBhMpFfqnGRgUsv9rNAKZyuiFPehinI"> <img alt="Image" width="1492" height="1900" src="https://private-user-images.githubusercontent.com/961094/530247694-1c13879c-232a-421f-9f2c-87cc00612001.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3Njk0LTFjMTM4NzljLTIzMmEtNDIxZi05ZjJjLTg3Y2MwMDYxMjAwMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZTFmNmJiODFhODNhOWY0Y2M1ODgyNDQ0YmE5MDdlOTI4MzBhMmNmNjMxNzE4NTZjZGZkOTgzMDkzZWU4NDgzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.I-L_Cia3esG8LLSy93BloQ6jclctmI9TOOE_GUWmXYc"> This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing. ``` curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{ "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264" }' ```
Author
Owner

@fatelei commented on GitHub (Dec 25, 2025):

this is workflow,no features

in chinese, this is "功能"

I know. I mean, it doesn't exist in workflow, it exists in chatflow.

Image Image Image

This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing.

curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{
      "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264"
    }'

curl -XPOST "http://localhost:5001/console/api/remote-files/upload" -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": "https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"}'
{
"code": "remote_file_upload_error",
"message": "Failed to fetch file from https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ: ",
"status": 400
}

i copy api key from

Image
@fatelei commented on GitHub (Dec 25, 2025): > > > > > this is workflow,no features > > > > > > > > > > > > in chinese, this is "功能" > > > > > > > > > I know. I mean, it doesn't exist in workflow, it exists in chatflow. > > > > > > <img alt="Image" width="1620" height="1774" src="https://private-user-images.githubusercontent.com/961094/530247638-24445a82-ecec-4e08-8471-b4a3aa850762.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjM4LTI0NDQ1YTgyLWVjZWMtNGUwOC04NDcxLWI0YTNhYTg1MDc2Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MGE0NGIwNWFjNTEzOWNiZWMyNGE2Zjk1Y2M0YWVmMGQwYjA2ZTRmODZhYTZlNDBjOWJhNDc0MzEzYmIxMTNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2ay_vHJOY_3blBNlbhkdzS2DEwHd4ljGznzXsvPQkP0"> <img alt="Image" width="2000" height="1112" src="https://private-user-images.githubusercontent.com/961094/530247671-18890a56-b1fb-4c2a-9575-be123fcc9ca3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjcxLTE4ODkwYTU2LWIxZmItNGMyYS05NTc1LWJlMTIzZmNjOWNhMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04N2E3NTE3ZjMyMmEwZGRmNWIyMWQwMDI3OTYzNWYwYjk0YTZiZGIwMDc2N2FjOWQ3YTc1M2FiNzA3ZDFhMTNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.nPOJXQT5I40pwBhMpFfqnGRgUsv9rNAKZyuiFPehinI"> <img alt="Image" width="1492" height="1900" src="https://private-user-images.githubusercontent.com/961094/530247694-1c13879c-232a-421f-9f2c-87cc00612001.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3Njk0LTFjMTM4NzljLTIzMmEtNDIxZi05ZjJjLTg3Y2MwMDYxMjAwMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZTFmNmJiODFhODNhOWY0Y2M1ODgyNDQ0YmE5MDdlOTI4MzBhMmNmNjMxNzE4NTZjZGZkOTgzMDkzZWU4NDgzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.I-L_Cia3esG8LLSy93BloQ6jclctmI9TOOE_GUWmXYc"> > > This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing. > > ``` > curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{ > "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264" > }' > ``` curl -XPOST "http://localhost:5001/console/api/remote-files/upload" -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": "https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"}' { "code": "remote_file_upload_error", "message": "Failed to fetch file from https:\/\/private-user-images.githubusercontent.com\/86815963\/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ: ", "status": 400 } i copy api key from <img width="3708" height="1822" alt="Image" src="https://github.com/user-attachments/assets/e2a1fc23-584f-46f6-8151-6ae1e234a877" />
Author
Owner

@SugarFatFree commented on GitHub (Dec 26, 2025):

这是工作流程,没有其他功能。

中文是“功能”

我知道。我的意思是,它不存在于工作流中,它存在于聊天流程中。

图像 图像 图像

这没问题,我想知道的是如何通过界面上传远程文件,使用这个 curl 调用会报错:缺少应用程序令牌。

curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{
      "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264"
    }'

curl -XPOST " http://localhost:5001/console/api/remote-files/upload " -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": " https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"} ' { "code": "remote_file_upload_error", "message": "无法从 https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ 获取文件: ", "status": 400 }

我从复制了 API 密钥

图像

Not feasible. This API Key cannot be used on this interface. An error will be reported.

curl -X POST 'http://localhost/console/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-MBqOQzGmxljukx7o8qw89HD8' -d '{
  "url": "http://localhost:9000/doc-element-ext/96/96e5fc6352597187/96e5fc6352597187.pdf?AWSAccessKeyId=miin&Signature=ybJNve7V4G4QheiZ2eIHilK0%3D&Expires=1766736846"
}'
{
  "code": "unauthorized",
  "message": "Invalid token.",
  "status": 401
}
@SugarFatFree commented on GitHub (Dec 26, 2025): > > > > > > 这是工作流程,没有其他功能。 > > > > > > > > > > > > > > > 中文是“功能” > > > > > > > > > > > > 我知道。我的意思是,它不存在于工作流中,它存在于聊天流程中。 > > > > > > > > > <img alt="图像" width="1620" height="1774" src="https://private-user-images.githubusercontent.com/961094/530247638-24445a82-ecec-4e08-8471-b4a3aa850762.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjM4LTI0NDQ1YTgyLWVjZWMtNGUwOC04NDcxLWI0YTNhYTg1MDc2Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MGE0NGIwNWFjNTEzOWNiZWMyNGE2Zjk1Y2M0YWVmMGQwYjA2ZTRmODZhYTZlNDBjOWJhNDc0MzEzYmIxMTNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2ay_vHJOY_3blBNlbhkdzS2DEwHd4ljGznzXsvPQkP0"> <img alt="图像" width="2000" height="1112" src="https://private-user-images.githubusercontent.com/961094/530247671-18890a56-b1fb-4c2a-9575-be123fcc9ca3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjcxLTE4ODkwYTU2LWIxZmItNGMyYS05NTc1LWJlMTIzZmNjOWNhMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04N2E3NTE3ZjMyMmEwZGRmNWIyMWQwMDI3OTYzNWYwYjk0YTZiZGIwMDc2N2FjOWQ3YTc1M2FiNzA3ZDFhMTNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.nPOJXQT5I40pwBhMpFfqnGRgUsv9rNAKZyuiFPehinI"> <img alt="图像" width="1492" height="1900" src="https://private-user-images.githubusercontent.com/961094/530247694-1c13879c-232a-421f-9f2c-87cc00612001.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3Njk0LTFjMTM4NzljLTIzMmEtNDIxZi05ZjJjLTg3Y2MwMDYxMjAwMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZTFmNmJiODFhODNhOWY0Y2M1ODgyNDQ0YmE5MDdlOTI4MzBhMmNmNjMxNzE4NTZjZGZkOTgzMDkzZWU4NDgzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.I-L_Cia3esG8LLSy93BloQ6jclctmI9TOOE_GUWmXYc"> > > > > > > 这没问题,我想知道的是如何通过界面上传远程文件,使用这个 curl 调用会报错:缺少应用程序令牌。 > > ``` > > curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{ > > "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264" > > }' > > ``` > > curl -XPOST " http://localhost:5001/console/api/remote-files/upload " -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": " [https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"}](https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ%22%7D) ' { "code": "remote_file_upload_error", "message": "无法从 https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ 获取文件: ", "status": 400 } > > 我从复制了 API 密钥 > > <img alt="图像" width="2000" height="1822" src="https://private-user-images.githubusercontent.com/961094/530254025-e2a1fc23-584f-46f6-8151-6ae1e234a877.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MzM2ODIsIm5iZiI6MTc2NjczMzM4MiwicGF0aCI6Ii85NjEwOTQvNTMwMjU0MDI1LWUyYTFmYzIzLTU4NGYtNDZmNi04MTUxLTZhZTFlMjM0YTg3Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwNzE2MjJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hYmMxY2ZjZWJmMDliYzc0NzllMGVjZGFmN2UyOTY5NjRlZTgyMGUwYjQzZGY3MGVmZDdjYjUwNmUyMTdlNzEwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.sjbSRCZQMxeR0qfdBM2SF6xz7TBB_g4ieRk5fkyVlQ0"> Not feasible. This API Key cannot be used on this interface. An error will be reported. ``` curl -X POST 'http://localhost/console/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-MBqOQzGmxljukx7o8qw89HD8' -d '{ "url": "http://localhost:9000/doc-element-ext/96/96e5fc6352597187/96e5fc6352597187.pdf?AWSAccessKeyId=miin&Signature=ybJNve7V4G4QheiZ2eIHilK0%3D&Expires=1766736846" }' ``` ``` { "code": "unauthorized", "message": "Invalid token.", "status": 401 } ```
Author
Owner

@fatelei commented on GitHub (Dec 26, 2025):

this is workflow,no features

in chinese, this is "功能"

I know. I mean, it doesn't exist in workflow, it exists in chatflow.

Image Image Image

This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing.

curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{
      "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264"
    }'

curl -XPOST "http://localhost:5001/console/api/remote-files/upload" -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": "https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"}' { "code": "remote_file_upload_error", "message": "Failed to fetch file from https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ: ", "status": 400 }

i copy api key from

Image

psql -U postgres --password dify
Password:
psql (14.20 (Homebrew))
Type "help" for help.

dify=# select * from api_tokens;

@fatelei commented on GitHub (Dec 26, 2025): > > > > > > this is workflow,no features > > > > > > > > > > > > > > > in chinese, this is "功能" > > > > > > > > > > > > I know. I mean, it doesn't exist in workflow, it exists in chatflow. > > > > > > > > > <img alt="Image" width="1620" height="1774" src="https://private-user-images.githubusercontent.com/961094/530247638-24445a82-ecec-4e08-8471-b4a3aa850762.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjM4LTI0NDQ1YTgyLWVjZWMtNGUwOC04NDcxLWI0YTNhYTg1MDc2Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MGE0NGIwNWFjNTEzOWNiZWMyNGE2Zjk1Y2M0YWVmMGQwYjA2ZTRmODZhYTZlNDBjOWJhNDc0MzEzYmIxMTNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2ay_vHJOY_3blBNlbhkdzS2DEwHd4ljGznzXsvPQkP0"> <img alt="Image" width="2000" height="1112" src="https://private-user-images.githubusercontent.com/961094/530247671-18890a56-b1fb-4c2a-9575-be123fcc9ca3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjcxLTE4ODkwYTU2LWIxZmItNGMyYS05NTc1LWJlMTIzZmNjOWNhMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04N2E3NTE3ZjMyMmEwZGRmNWIyMWQwMDI3OTYzNWYwYjk0YTZiZGIwMDc2N2FjOWQ3YTc1M2FiNzA3ZDFhMTNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.nPOJXQT5I40pwBhMpFfqnGRgUsv9rNAKZyuiFPehinI"> <img alt="Image" width="1492" height="1900" src="https://private-user-images.githubusercontent.com/961094/530247694-1c13879c-232a-421f-9f2c-87cc00612001.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3Njk0LTFjMTM4NzljLTIzMmEtNDIxZi05ZjJjLTg3Y2MwMDYxMjAwMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZTFmNmJiODFhODNhOWY0Y2M1ODgyNDQ0YmE5MDdlOTI4MzBhMmNmNjMxNzE4NTZjZGZkOTgzMDkzZWU4NDgzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.I-L_Cia3esG8LLSy93BloQ6jclctmI9TOOE_GUWmXYc"> > > > > > > This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing. > > ``` > > curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{ > > "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264" > > }' > > ``` > > curl -XPOST "http://localhost:5001/console/api/remote-files/upload" -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": "[https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"}](https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ%22%7D)' { "code": "remote_file_upload_error", "message": "Failed to fetch file from https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ: ", "status": 400 } > > i copy api key from > > <img alt="Image" width="2000" height="1822" src="https://private-user-images.githubusercontent.com/961094/530254025-e2a1fc23-584f-46f6-8151-6ae1e234a877.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MzQ4MTgsIm5iZiI6MTc2NjczNDUxOCwicGF0aCI6Ii85NjEwOTQvNTMwMjU0MDI1LWUyYTFmYzIzLTU4NGYtNDZmNi04MTUxLTZhZTFlMjM0YTg3Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwNzM1MThaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iODZiYjU3NTI2NGU0NTFkMzU0MDYwYWUxYjQ2OTg2NTFhY2NhY2UwZTNlYzAzZWY5ODRkNTMyYjk2ZGM4ZTAzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.t1aj6tS_iLKJbZko0ZYvswN9P6o0spnOlxtgwcUGIB4"> psql -U postgres --password dify Password: psql (14.20 (Homebrew)) Type "help" for help. dify=# select * from api_tokens;
Author
Owner

@SugarFatFree commented on GitHub (Dec 28, 2025):

this is workflow,no features

in chinese, this is "功能"

I know. I mean, it doesn't exist in workflow, it exists in chatflow.

Image Image Image

This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing.

curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{
      "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264"
    }'

curl -XPOST "http://localhost:5001/console/api/remote-files/upload" -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": "https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"}' { "code": "remote_file_upload_error", "message": "Failed to fetch file from https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ: ", "status": 400 }
i copy api key from
Image

psql -U postgres --password dify Password: psql (14.20 (Homebrew)) Type "help" for help.

dify=# select * from api_tokens;

Image
curl -X POST 'http://172.29.0.34/console/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-JvTEZlsxtmiTHkAlW4C3q8Ra' -d '{
  "url": "http://172.29.0.66:9000/doc-element-ext/c0/c0e2fe163a25ca02/c0e2fe163a25ca02.pdf?AWSAccessKeyId=minioadmin&Signature=%2BW194qzudd%2FvY1k1YSPxrjKfHXg%3D&Expires=1766976098"
}'
{
  "code": "unauthorized",
  "message": "Invalid token.",
  "status": 401
}

is still not feasible.

@SugarFatFree commented on GitHub (Dec 28, 2025): > > > > > > > this is workflow,no features > > > > > > > > > > > > > > > > > > in chinese, this is "功能" > > > > > > > > > > > > > > > I know. I mean, it doesn't exist in workflow, it exists in chatflow. > > > > > > > > > > > > <img alt="Image" width="1620" height="1774" src="https://private-user-images.githubusercontent.com/961094/530247638-24445a82-ecec-4e08-8471-b4a3aa850762.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjM4LTI0NDQ1YTgyLWVjZWMtNGUwOC04NDcxLWI0YTNhYTg1MDc2Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MGE0NGIwNWFjNTEzOWNiZWMyNGE2Zjk1Y2M0YWVmMGQwYjA2ZTRmODZhYTZlNDBjOWJhNDc0MzEzYmIxMTNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2ay_vHJOY_3blBNlbhkdzS2DEwHd4ljGznzXsvPQkP0"> <img alt="Image" width="2000" height="1112" src="https://private-user-images.githubusercontent.com/961094/530247671-18890a56-b1fb-4c2a-9575-be123fcc9ca3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3NjcxLTE4ODkwYTU2LWIxZmItNGMyYS05NTc1LWJlMTIzZmNjOWNhMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04N2E3NTE3ZjMyMmEwZGRmNWIyMWQwMDI3OTYzNWYwYjk0YTZiZGIwMDc2N2FjOWQ3YTc1M2FiNzA3ZDFhMTNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.nPOJXQT5I40pwBhMpFfqnGRgUsv9rNAKZyuiFPehinI"> <img alt="Image" width="1492" height="1900" src="https://private-user-images.githubusercontent.com/961094/530247694-1c13879c-232a-421f-9f2c-87cc00612001.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTQzODcsIm5iZiI6MTc2NjcxNDA4NywicGF0aCI6Ii85NjEwOTQvNTMwMjQ3Njk0LTFjMTM4NzljLTIzMmEtNDIxZi05ZjJjLTg3Y2MwMDYxMjAwMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwMTU0NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZTFmNmJiODFhODNhOWY0Y2M1ODgyNDQ0YmE5MDdlOTI4MzBhMmNmNjMxNzE4NTZjZGZkOTgzMDkzZWU4NDgzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.I-L_Cia3esG8LLSy93BloQ6jclctmI9TOOE_GUWmXYc"> > > > > > > > > > This is no problem, what I want to know is how to upload remote files through the interface, using this curl call will report an error : App token is missing. > > > ``` > > > curl -X POST 'http://172.29.0.67/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-KUB1HZixldciadckzvdqnlLX' -d '{ > > > "url": "http://172.29.0.66:8080/doc-element-ext/7c/7cceb74ed3c9a5d6/7cceb74ed3c9a5d6.pdf?AWSAccessKeyId=min&Signature=V6PO5%2B2hB4L3W8N451eN1d%2Bk%3D&Expires=1766629264" > > > }' > > > ``` > > > > > > curl -XPOST "http://localhost:5001/console/api/remote-files/upload" -H "Content-Type: application/json" -H "Authorization: Bearer app-qdYk4WLjjYHRpAA7p2ieYpAL" -d '{"url": "[https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ"}](https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ%22%7D)' { "code": "remote_file_upload_error", "message": "Failed to fetch file from https://private-user-images.githubusercontent.com/86815963/530249207-fd464bc8-46de-4c6b-b682-b1a134667bb0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MTUyNjIsIm5iZiI6MTc2NjcxNDk2MiwicGF0aCI6Ii84NjgxNTk2My81MzAyNDkyMDctZmQ0NjRiYzgtNDZkZS00YzZiLWI2ODItYjFhMTM0NjY3YmIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEyMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMjI2VDAyMDkyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MjIzZmRlNTE0NWIyN2Q5OWE1MGZhOTEyMTcxYTkxZjc1ZTA2MzQ1ZmQ0OTI2YjBhNjUzMTczM2U3ZmI3YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDY8qmsWBoKIk_51cvVeh6QZuu-PaKWuch51nrAwjSQ: ", "status": 400 } > > i copy api key from > > <img alt="Image" width="2000" height="1822" src="https://private-user-images.githubusercontent.com/961094/530254025-e2a1fc23-584f-46f6-8151-6ae1e234a877.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY3MzQ4MTgsIm5iZiI6MTc2NjczNDUxOCwicGF0aCI6Ii85NjEwOTQvNTMwMjU0MDI1LWUyYTFmYzIzLTU4NGYtNDZmNi04MTUxLTZhZTFlMjM0YTg3Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNlQwNzM1MThaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iODZiYjU3NTI2NGU0NTFkMzU0MDYwYWUxYjQ2OTg2NTFhY2NhY2UwZTNlYzAzZWY5ODRkNTMyYjk2ZGM4ZTAzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.t1aj6tS_iLKJbZko0ZYvswN9P6o0spnOlxtgwcUGIB4"> > > psql -U postgres --password dify Password: psql (14.20 (Homebrew)) Type "help" for help. > > dify=# select * from api_tokens; <img width="1064" height="369" alt="Image" src="https://github.com/user-attachments/assets/b0433b46-438e-41c7-9e01-719a074e0945" /> ``` curl -X POST 'http://172.29.0.34/console/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-JvTEZlsxtmiTHkAlW4C3q8Ra' -d '{ "url": "http://172.29.0.66:9000/doc-element-ext/c0/c0e2fe163a25ca02/c0e2fe163a25ca02.pdf?AWSAccessKeyId=minioadmin&Signature=%2BW194qzudd%2FvY1k1YSPxrjKfHXg%3D&Expires=1766976098" }' ``` ``` { "code": "unauthorized", "message": "Invalid token.", "status": 401 } ``` is still not feasible.
Author
Owner

@fatelei commented on GitHub (Dec 31, 2025):

curl -X POST 'http://172.29.0.34/console/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-JvTEZlsxtmiTHkAlW4C3q8Ra' -d '{
"url": "http://172.29.0.66:9000/doc-element-ext/c0/c0e2fe163a25ca02/c0e2fe163a25ca02.pdf?AWSAccessKeyId=minioadmin&Signature=%2BW194qzudd%2FvY1k1YSPxrjKfHXg%3D&Expires=1766976098"
}'

i use your curl, it works, make sure 172.29.0.34 is a dify api server ?

Image
@fatelei commented on GitHub (Dec 31, 2025): > curl -X POST 'http://172.29.0.34/console/api/remote-files/upload' -H 'Content-Type: application/json' -H 'Authorization: Bearer app-JvTEZlsxtmiTHkAlW4C3q8Ra' -d '{ > "url": "http://172.29.0.66:9000/doc-element-ext/c0/c0e2fe163a25ca02/c0e2fe163a25ca02.pdf?AWSAccessKeyId=minioadmin&Signature=%2BW194qzudd%2FvY1k1YSPxrjKfHXg%3D&Expires=1766976098" > }' i use your curl, it works, make sure 172.29.0.34 is a dify api server ? <img width="1456" height="612" alt="Image" src="https://github.com/user-attachments/assets/ab9d4dea-3e93-49d3-81f2-126cab3b2b83" />
Author
Owner

@dosubot[bot] commented on GitHub (Feb 1, 2026):

Hi, @SugarFatFree. I'm Dosu, and I'm helping the Dify team manage their backlog and am marking this issue as stale.

Issue Summary:

  • You reported a "File validation failed" error when uploading a remote PDF via API in a self-hosted Dify v1.11.1 Docker setup.
  • The issue involves confusion around using the undocumented /api/remote-files/upload endpoint and managing app tokens, resulting in "App token is missing" errors.
  • Contributor fatelei suggested checking workflow file upload configuration for allowed file types and extensions as a potential cause.
  • The remote file upload process requires a manual call to /api/remote-files/upload with a valid app token, but documentation and token usage remain unclear to you.
  • The issue remains unresolved with no recent updates or clarifications.

Next Steps:

  • Please confirm if this issue is still relevant with the latest version of Dify, and if so, you can keep the discussion open by commenting here.
  • Otherwise, I will automatically close this issue in 15 days.

Thank you for your understanding and contribution!

@dosubot[bot] commented on GitHub (Feb 1, 2026): Hi, @SugarFatFree. I'm [Dosu](https://dosu.dev), and I'm helping the Dify team manage their backlog and am marking this issue as stale. **Issue Summary:** - You reported a "File validation failed" error when uploading a remote PDF via API in a self-hosted Dify v1.11.1 Docker setup. - The issue involves confusion around using the undocumented `/api/remote-files/upload` endpoint and managing app tokens, resulting in "App token is missing" errors. - Contributor fatelei suggested checking workflow file upload configuration for allowed file types and extensions as a potential cause. - The remote file upload process requires a manual call to `/api/remote-files/upload` with a valid app token, but documentation and token usage remain unclear to you. - The issue remains unresolved with no recent updates or clarifications. **Next Steps:** - Please confirm if this issue is still relevant with the latest version of Dify, and if so, you can keep the discussion open by commenting here. - Otherwise, I will automatically close this issue in 15 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#21258