images Output from MinerU Plugin Not Passed to Next Node in Dify Workflow #805

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

Originally created by @sisui-123 on GitHub (Nov 16, 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.9.2

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

  1. Open Dify and create a new workflow.
  2. Add a MinerU plugin node and configure it to parse a PDF (or other document containing images).
  3. Run the workflow so that MinerU processes the file.
  4. Observe the output of the MinerU node — you should see an images field in the output JSON (an array of objects
    Image
Image
  1. Add a code node after the MinerU node.
  2. In the next node’s input configuration, try to bind / select the images field from the previous node’s outputs.
  3. Notice that images is not available in the list of selectable input variables for the next node, even though other fields like text, json, files, etc. are present.
Image

✔️ Expected Behavior

After the MinerU plugin node finishes processing a document and outputs the images field, the downstream node (e.g., a code node) should be able to see and select images as an input variable.

This would allow the next node to access and process the extracted image objects without any issues.

Actual Behavior

Even though the MinerU plugin node outputs an images field containing the extracted images, the downstream node (e.g., code node) does not list images as an available input variable.

As a result, the next node cannot access or use the extracted image objects, while other fields such as text, json, files, and full_zip_url are accessible without any problem.

Originally created by @sisui-123 on GitHub (Nov 16, 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.9.2 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce 1. Open Dify and create a new workflow. 2. Add a **MinerU plugin** node and configure it to parse a PDF (or other document containing images). 3. Run the workflow so that MinerU processes the file. 4. Observe the output of the MinerU node — you should see an `images` field in the output JSON (an array of objects <img width="252" height="267" alt="Image" src="https://github.com/user-attachments/assets/79fba835-5d30-4eed-b0ec-cb591b2878c6" /> <img width="372" height="220" alt="Image" src="https://github.com/user-attachments/assets/775dc48b-0938-47f9-9bd3-b0c5eb7e75fa" /> 5. Add a **code node** after the MinerU node. 6. In the next node’s input configuration, try to bind / select the `images` field from the previous node’s outputs. 7. Notice that `images` is **not available** in the list of selectable input variables for the next node, even though other fields like `text`, `json`, `files`, etc. are present. <img width="391" height="409" alt="Image" src="https://github.com/user-attachments/assets/9f60df0c-a48c-4f01-9859-8d483ba8d7ba" /> ### ✔️ Expected Behavior After the MinerU plugin node finishes processing a document and outputs the `images` field, the downstream node (e.g., a code node) should be able to see and select `images` as an input variable. This would allow the next node to access and process the extracted image objects without any issues. ### ❌ Actual Behavior Even though the MinerU plugin node outputs an `images` field containing the extracted images, the downstream node (e.g., code node) does **not** list `images` as an available input variable. As a result, the next node cannot access or use the extracted image objects, while other fields such as `text`, `json`, `files`, and `full_zip_url` are accessible without any problem.
yindo added the bug label 2026-02-16 10:20:34 -05:00
yindo closed this issue 2026-02-16 10:20:34 -05:00
Author
Owner

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

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

This issue happens because the workflow variable picker in Dify only exposes output fields from plugin/tool nodes if they are recognized and allowed by the frontend's schema/type logic. The MinerU plugin's images field is defined as an array of objects in its output schema, but unless the frontend's variable processing code (specifically, the logic in ToolNodeDefault.getOutputVars and the variable filter functions) recognizes and propagates array[object] types, fields like images will be filtered out and not shown as selectable variables in downstream nodes—even though they are present in the output JSON. Other fields like text, json, files, and full_zip_url are exposed because they match the expected types and structures in the variable picker logic.

To make images available in downstream nodes, the plugin's output schema must be correctly returned by the variable processing logic, and the filter must allow VarType.arrayObject outputs. This likely requires a code or configuration update to ensure array-of-object fields are included in the list of selectable variables for downstream nodes. No recent pull requests or issues address this directly, so this appears to be a current limitation or bug in the workflow variable exposure logic.
Reference: frontend variable processing and schema handling

To reply, just mention @dosu.


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

@dosubot[bot] commented on GitHub (Nov 16, 2025): <!-- Greeting --> Hi @sisui-123! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify-official-plugins team. <!-- Answer --> This issue happens because the workflow variable picker in Dify only exposes output fields from plugin/tool nodes if they are recognized and allowed by the frontend's schema/type logic. The MinerU plugin's `images` field is defined as an array of objects in its output schema, but unless the frontend's variable processing code (specifically, the logic in `ToolNodeDefault.getOutputVars` and the variable filter functions) recognizes and propagates `array[object]` types, fields like `images` will be filtered out and not shown as selectable variables in downstream nodes—even though they are present in the output JSON. Other fields like `text`, `json`, `files`, and `full_zip_url` are exposed because they match the expected types and structures in the variable picker logic. To make `images` available in downstream nodes, the plugin's output schema must be correctly returned by the variable processing logic, and the filter must allow `VarType.arrayObject` outputs. This likely requires a code or configuration update to ensure array-of-object fields are included in the list of selectable variables for downstream nodes. No recent pull requests or issues address this directly, so this appears to be a current limitation or bug in the workflow variable exposure logic. [Reference: frontend variable processing and schema handling](https://github.com/langgenius/dify/blob/4a89403566c85eff76a959bc62be76f1e8af5ce6/web/app/components/workflow/nodes/_base/components/variable/utils.ts#L122-L2045) <!-- 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/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=other)</sup>&nbsp;&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify-official-plugins/issues/2074)
Author
Owner

@sisui-123 commented on GitHub (Nov 17, 2025):

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

This issue happens because the workflow variable picker in Dify only exposes output fields from plugin/tool nodes if they are recognized and allowed by the frontend's schema/type logic. The MinerU plugin's images field is defined as an array of objects in its output schema, but unless the frontend's variable processing code (specifically, the logic in ToolNodeDefault.getOutputVars and the variable filter functions) recognizes and propagates array[object] types, fields like images will be filtered out and not shown as selectable variables in downstream nodes—even though they are present in the output JSON. Other fields like text, json, files, and full_zip_url are exposed because they match the expected types and structures in the variable picker logic.

To make images available in downstream nodes, the plugin's output schema must be correctly returned by the variable processing logic, and the filter must allow VarType.arrayObject outputs. This likely requires a code or configuration update to ensure array-of-object fields are included in the list of selectable variables for downstream nodes. No recent pull requests or issues address this directly, so this appears to be a current limitation or bug in the workflow variable exposure logic. Reference: frontend variable processing and schema handling

To reply, just mention @dosu.

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

@dosu
However, based on my testing, this does not fully match the behavior in the current version of Dify.

The json field from the MinerU plugin is also defined as array[object], yet it does appear in the workflow variable picker and can be selected normally in downstream nodes.
Only the images field—which has the same type (array[object])—is missing.

This suggests that the issue is not simply related to array-of-object types being filtered out globally. Instead, it may be a field-specific handling issue, or a bug in the variable-extraction logic that treats images differently from json, even though they share the same declared type.

@sisui-123 commented on GitHub (Nov 17, 2025): > Hi [@sisui-123](https://github.com/sisui-123)! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify-official-plugins team. > > This issue happens because the workflow variable picker in Dify only exposes output fields from plugin/tool nodes if they are recognized and allowed by the frontend's schema/type logic. The MinerU plugin's `images` field is defined as an array of objects in its output schema, but unless the frontend's variable processing code (specifically, the logic in `ToolNodeDefault.getOutputVars` and the variable filter functions) recognizes and propagates `array[object]` types, fields like `images` will be filtered out and not shown as selectable variables in downstream nodes—even though they are present in the output JSON. Other fields like `text`, `json`, `files`, and `full_zip_url` are exposed because they match the expected types and structures in the variable picker logic. > > To make `images` available in downstream nodes, the plugin's output schema must be correctly returned by the variable processing logic, and the filter must allow `VarType.arrayObject` outputs. This likely requires a code or configuration update to ensure array-of-object fields are included in the list of selectable variables for downstream nodes. No recent pull requests or issues address this directly, so this appears to be a current limitation or bug in the workflow variable exposure logic. [Reference: frontend variable processing and schema handling](https://github.com/langgenius/dify/blob/4a89403566c85eff76a959bc62be76f1e8af5ce6/web/app/components/workflow/nodes/_base/components/variable/utils.ts#L122-L2045) > > _To reply, just mention [@dosu](https://go.dosu.dev/dosubot)._ > > How did I do? [Good](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/6f605593-323a-49f3-8279-2b5d433d590e?feedback_type=other)  [<img alt="Join Discord" width="49" height="20" src="https://camo.githubusercontent.com/7d2066700925db1e370d956834f9ea0e5bc92cecbe84963fbd2a363e45091b4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6a6f696e2d3538363546323f6c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465266c6162656c3d">](https://go.dosu.dev/discord-bot) [<img alt="Share on X" width="58" height="20" src="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-official-plugins/issues/2074) [@dosu](https://go.dosu.dev/dosubot) However, based on my testing, this does not fully match the behavior in the current version of Dify. The json field from the MinerU plugin is also defined as array[object], yet it does appear in the workflow variable picker and can be selected normally in downstream nodes. Only the images field—which has the same type (array[object])—is missing. This suggests that the issue is not simply related to array-of-object types being filtered out globally. Instead, it may be a field-specific handling issue, or a bug in the variable-extraction logic that treats images differently from json, even though they share the same declared type.
Author
Owner

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

You're right—this isn't a generic array[object] filtering issue. The root cause is in how Dify's variable picker logic handles plugin output schemas: fields like images from MinerU are filtered out unless their schema includes explicit structured children metadata. Recent changes in the frontend (see code) tightened this filtering, so array fields without nested schema details (like images) get pruned, while built-in fields like json survive because they're part of the default tool output struct and bypass the aggressive child filtering.

To work around this, you can try modifying the MinerU plugin's output schema to ensure the images field includes a detailed items schema (with properties for each image object). This should help the picker recognize and expose images as a selectable variable downstream. If you control the plugin, update its output schema to match how json is defined, with explicit object properties for each array item.

To reply, just mention @dosu.


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

@dosubot[bot] commented on GitHub (Nov 17, 2025): <!-- Answer --> You're right—this isn't a generic array[object] filtering issue. The root cause is in how Dify's variable picker logic handles plugin output schemas: fields like `images` from MinerU are filtered out unless their schema includes explicit structured children metadata. Recent changes in the frontend ([see code](https://github.com/langgenius/dify/blob/4a89403566c85eff76a959bc62be76f1e8af5ce6/web/app/components/workflow/nodes/_base/components/variable/utils.ts#L122-L876)) tightened this filtering, so array fields without nested schema details (like `images`) get pruned, while built-in fields like `json` survive because they're part of the default tool output struct and bypass the aggressive child filtering. To work around this, you can try modifying the MinerU plugin's output schema to ensure the `images` field includes a detailed `items` schema (with properties for each image object). This should help the picker recognize and expose `images` as a selectable variable downstream. If you control the plugin, update its output schema to match how `json` is defined, with explicit object properties for each array item. <!-- 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/3b26bf5f-cf8b-4234-8bb0-be22a3ea732a?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/3b26bf5f-cf8b-4234-8bb0-be22a3ea732a?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/3b26bf5f-cf8b-4234-8bb0-be22a3ea732a?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/3b26bf5f-cf8b-4234-8bb0-be22a3ea732a?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/3b26bf5f-cf8b-4234-8bb0-be22a3ea732a?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/3b26bf5f-cf8b-4234-8bb0-be22a3ea732a?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/3b26bf5f-cf8b-4234-8bb0-be22a3ea732a?feedback_type=other)</sup>&nbsp;&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify-official-plugins/issues/2074)
Author
Owner

@simonjhy commented on GitHub (Dec 3, 2025):

We kindly request that Dify officially allow users to freely use the officially defined and supported data types as interfaces in custom plugins as soon as possible. The current restrictions are severely hindering many users from adopting Dify as a product. Lifting these limitations and allowing users to freely extend the functionality will undoubtedly significantly accelerate the popularity and promotion of Dify. Please do it ASAP !!!!!!!!!!

Official plugin can directly any output node, custom plugin should be approved to use all the data type defined by Dify, right?

@simonjhy commented on GitHub (Dec 3, 2025): We kindly request that Dify officially allow users to freely use the officially defined and supported data types as interfaces in custom plugins as soon as possible. The current restrictions are severely hindering many users from adopting Dify as a product. Lifting these limitations and allowing users to freely extend the functionality will undoubtedly significantly accelerate the popularity and promotion of Dify. Please do it ASAP !!!!!!!!!! Official plugin can directly any output node, custom plugin should be approved to use all the data type defined by Dify, right?
Author
Owner

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

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

Issue Summary:

  • You reported that the MinerU plugin's images field was not available as an input variable downstream in Dify 1.9.2.
  • This was due to the frontend variable picker filtering out array-of-object fields without explicit nested metadata in their schema.
  • The recommended fix was to update the MinerU plugin's output schema to define detailed item properties for images.
  • Another user requested broader support for all data types in custom plugins to avoid similar issues.
  • The issue has been resolved by updating the schema to expose images properly.

Next Steps:

  • Please confirm if this resolution works for you with the latest version of the dify-official-plugins repository.
  • If the issue is still relevant, feel free to comment to keep the discussion open; otherwise, I will automatically close this issue in 5 days.

Thank you for your understanding and contribution!

@dosubot[bot] commented on GitHub (Dec 19, 2025): Hi, @sisui-123. I'm [Dosu](https://dosu.dev), and I'm helping the dify-official-plugins team manage their backlog and am marking this issue as stale. **Issue Summary:** - You reported that the MinerU plugin's `images` field was not available as an input variable downstream in Dify 1.9.2. - This was due to the frontend variable picker filtering out array-of-object fields without explicit nested metadata in their schema. - The recommended fix was to update the MinerU plugin's output schema to define detailed item properties for `images`. - Another user requested broader support for all data types in custom plugins to avoid similar issues. - The issue has been resolved by updating the schema to expose `images` properly. **Next Steps:** - Please confirm if this resolution works for you with the latest version of the dify-official-plugins repository. - If the issue is still relevant, feel free to comment to keep the discussion open; otherwise, I will automatically close this issue in 5 days. Thank you for your understanding and contribution!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#805