Image files retrieved via HTTP in the workflow cannot be sent to the LLM.
Self Checks
- [x] I have read the Contributing Guide and Language Policy.
- [x] This is only for bug report, if you would like to ask a question, please head to Discussions.
- [x] I have searched for existing issues search for existing 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
Version 1.10.0
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
Image files retrieved via HTTP in the workflow cannot be sent to the LLM.
✔️ Expected Behavior
Images can be used for analysis of large models.
❌ Actual Behavior
An error occurred after the image was sent to the large model: Invalid variable type: <class 'core.variables.variables.ObjectVariable'>
Hi @rvnox! I'm Dosu and I’m helping the dify team.
This error happens because the webhook node passes the uploaded image as a plain object (ObjectVariable), but the LLM node expects a FileVariable (or ArrayFileVariable for multiple files). Dify's workflow engine does not automatically convert file dictionaries from webhook triggers into File objects before passing them downstream, so the LLM node rejects the input with a type error "Invalid variable type: ObjectVariable".
Workaround:
Use an HTTP request node in your workflow to fetch the image by its URL and pass the resulting file variable to the LLM node. This ensures the correct variable type is used. For Docker setups, make sure your FILES_URL environment variable is set to an externally accessible address (not localhost) so files are recognized and handled properly "details and workarounds".
Requirements for image analysis:
- The LLM node must have vision mode enabled.
- The input must be a FileVariable or ArrayFileVariable (not ObjectVariable).
- Supported image formats include JPG, PNG, GIF, etc. "file variable handling".
Permanent fix:
A code change is needed so the workflow engine converts file dicts from webhook triggers into FileVariables before passing them to downstream nodes. This is a known limitation and tracked in related issues "conversion fix".
For more details, see the file upload guide and issue discussion.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other