The plugin is stuck in the running state. #21489

Closed
opened 2026-02-21 20:12:47 -05:00 by yindo · 9 comments
Owner

Originally created by @zjwi123 on GitHub (Jan 6, 2026).

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.91

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

Image

✔️ Expected Behavior

Can output the running status of the plugin

Actual Behavior

Uploaded the plugin I created, but it remains in the running state in the workflow.

Originally created by @zjwi123 on GitHub (Jan 6, 2026). ### 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.91 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce <img width="440" height="894" alt="Image" src="https://github.com/user-attachments/assets/dfd8de7d-0008-491a-a8b1-625c535fda3d" /> ### ✔️ Expected Behavior Can output the running status of the plugin ### ❌ Actual Behavior Uploaded the plugin I created, but it remains in the running state in the workflow.
yindo added the 🐞 bug🤔 cant-reproduce labels 2026-02-21 20:12:47 -05:00
yindo closed this issue 2026-02-21 20:12:47 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jan 6, 2026):

Hi @zjwi123! I'm Dosu and I’m helping the dify team.

This is a known issue in Dify v1.91 (self-hosted, Docker): plugins can get stuck in the running state due to bugs in workflow execution and token usage reporting. This is fixed in v1.9.2 and later—upgrading is the most reliable solution [details].

If you can't upgrade right now, here are the most common causes and troubleshooting steps:

  • Check your Docker .env for FILES_URL and make sure both Dify and plugin containers can communicate. Restart containers after changes [network tips].
  • For ComfyUI or similar plugins, make sure your workflow JSON uses the nodes and links arrays format (exported from ComfyUI with Dev Mode enabled), not numbered keys. Remove any hardcoded image names in LoadImage nodes [format details].
  • Increase plugin execution timeouts by setting PLUGIN_MAX_EXECUTION_TIMEOUT=600 and PLUGIN_DAEMON_TIMEOUT=600.0 in your .env and docker-compose.yaml, then restart containers [timeout fix].
  • Check plugin_daemon logs for dependency installation errors or network timeouts. If you see pip or PyPI errors, try setting a PyPI mirror and increasing UV_HTTP_TIMEOUT [dependency tips].
  • If using self-signed SSL certs, you may need to disable SSL verification in your plugin code or add the cert file [SSL workaround].

If the plugin still gets stuck, check the logs for errors during plugin execution and share details about your plugin type, workflow JSON, and any error messages for deeper debugging.

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 (Jan 6, 2026): <!-- Greeting --> Hi @zjwi123! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify team. <!-- Answer --> This is a known issue in Dify v1.91 (self-hosted, Docker): plugins can get stuck in the running state due to bugs in workflow execution and token usage reporting. This is fixed in v1.9.2 and later—upgrading is the most reliable solution [[details](https://github.com/langgenius/dify-official-plugins/issues/2012)]. If you can't upgrade right now, here are the most common causes and troubleshooting steps: - Check your Docker `.env` for `FILES_URL` and make sure both Dify and plugin containers can communicate. Restart containers after changes [[network tips](https://github.com/langgenius/dify-official-plugins/issues/1816)]. - For ComfyUI or similar plugins, make sure your workflow JSON uses the `nodes` and `links` arrays format (exported from ComfyUI with Dev Mode enabled), not numbered keys. Remove any hardcoded image names in `LoadImage` nodes [[format details](https://github.com/langgenius/dify-official-plugins/issues/1718)]. - Increase plugin execution timeouts by setting `PLUGIN_MAX_EXECUTION_TIMEOUT=600` and `PLUGIN_DAEMON_TIMEOUT=600.0` in your `.env` and `docker-compose.yaml`, then restart containers [[timeout fix](https://github.com/langgenius/dify/pull/29785)]. - Check plugin_daemon logs for dependency installation errors or network timeouts. If you see pip or PyPI errors, try setting a PyPI mirror and increasing `UV_HTTP_TIMEOUT` [[dependency tips](https://github.com/langgenius/dify-official-plugins/issues/2086)]. - If using self-signed SSL certs, you may need to disable SSL verification in your plugin code or add the cert file [[SSL workaround](https://github.com/langgenius/dify-official-plugins/issues/1853)]. If the plugin still gets stuck, check the logs for errors during plugin execution and share details about your plugin type, workflow JSON, and any error messages for deeper debugging. <!-- 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/15062784-f404-426f-8569-3e998153c683?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/15062784-f404-426f-8569-3e998153c683?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/15062784-f404-426f-8569-3e998153c683?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/15062784-f404-426f-8569-3e998153c683?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/15062784-f404-426f-8569-3e998153c683?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/15062784-f404-426f-8569-3e998153c683?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/15062784-f404-426f-8569-3e998153c683?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=This%20is%20a%20known%20issue%20in%20Dify%20v1.91%20%28self-hosted%2C%20Docker%29%3A%20plugins%20can%20get%20stuck%20in%20the%20running%20state%20due%20to%20bugs%20in%20workflow%20execution%20and%20token%20usage%20reporting.%20This%20is%20fixed%20in%20v1.9.2%20and%20later%E2%80%94upgrading%20is%20the%20most%20reliable%20solution%20%5B%5Bdetails%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/2012%29%5D.%0A%0AIf%20you%20can%27t%20upgrade%20right%20now%2C%20here%20are%20the%20most%20common%20causes%20and%20troubleshooting%20steps%3A%0A%0A-%20Check%20your%20Docker%20%60.env%60%20for%20%60FILES_URL%60%20and%20make%20sure%20both%20Dify%20and%20plugin%20containers%20can%20communicate.%20Restart%20containers%20after%20changes%20%5B%5Bnetwork%20tips%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/1816%29%5D.%0A-%20For%20ComfyUI%20or%20similar%20plugins%2C%20make%20sure%20your%20workflow%20JSON%20uses%20the%20%60nodes%60%20and%20%60links%60%20arrays%20format%20%28exported%20from%20ComfyUI%20with%20Dev%20Mode%20enabled%29%2C%20not%20numbered%20keys.%20Remove%20any%20hardcoded%20image%20names%20in%20%60LoadImage%60%20nodes%20%5B%5Bformat%20details%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/1718%29%5D.%0A-%20Increase%20plugin%20execution%20timeouts%20by%20setting%20%60PLUGIN_MAX_EXECUTION_TIMEOUT%3D600%60%20and%20%60PLUGIN_DAEMON_TIMEOUT%3D600.0%60%20in%20your%20%60.env%60%20and%20%60docker-compose.yaml%60%2C%20then%20restart%20containers%20%5B%5Btimeout%20fix%5D%28https%3A//github.com/langgenius/dify/pull/29785%29%5D.%0A-%20Check%20plugin_daemon%20logs%20for%20dependency%20installation%20errors%20or%20network%20timeouts.%20If%20you%20see%20pip%20or%20PyPI%20errors%2C%20try%20setting%20a%20PyPI%20mirror%20and%20increasing%20%60UV_HTTP_TIMEOUT%60%20%5B%5Bdependency%20tips%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/2086%29%5D.%0A-%20If%20using%20self-signed%20SSL%20certs%2C%20you%20may%20need%20to%20disable%20SSL%20verification%20in%20your%20plugin%20code%20or%20add%20the%20cert%20file%20%5B%5BSSL%20workaround%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/1853%29%5D.%0A%0AIf%20the%20plugin%20still%20gets%20stuck%2C%20check%20the%20logs%20for%20errors%20during%20plugin%20execution%20and%20share%20details%20about%20your%20plugin%20type%2C%20workflow%20JSON%2C%20and%20any%20error%20messages%20for%20deeper%20debugging.)&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/30668)
Author
Owner

@zjwi123 commented on GitHub (Jan 6, 2026):

The plugin is created locally and uploaded.

@zjwi123 commented on GitHub (Jan 6, 2026): The plugin is created locally and uploaded.
Author
Owner

@zjwi123 commented on GitHub (Jan 6, 2026):

The plugin is created and uploaded locally.

zjw
@.***

@zjwi123 commented on GitHub (Jan 6, 2026): The plugin is created and uploaded locally. zjw ***@***.***
Author
Owner

@dosubot[bot] commented on GitHub (Jan 6, 2026):

Thanks for clarifying that the plugin was created and uploaded locally. In Dify v1.91, plugins stuck in the running state are often caused by issues like manifest.yaml formatting errors, missing required methods (such as _validate_credentials in your ToolProvider), or problems in the plugin's configuration (like a missing or incorrect 'type' key) [details][type key error].

Other common causes include Docker network misconfiguration, dependency installation failures, or the plugin code not yielding a completion event (e.g., the generator never finishes) [plugin lifecycle]. Timeout misconfiguration can also cause this—make sure PLUGIN_MAX_EXECUTION_TIMEOUT and PLUGIN_DAEMON_TIMEOUT are set to at least 600 in your .env and docker-compose.yaml, then restart your containers [timeout fix].

To help pinpoint the issue, could you share:

  • The plugin type (Python, ComfyUI, etc.)
  • Your manifest.yaml and ToolProvider code (especially _validate_credentials)
  • Any relevant plugin_daemon or Docker logs during plugin execution
  • The workflow JSON or configuration using the plugin

Also, check your browser console for frontend errors and verify your .env settings (FILES_URL, INSTALL_METHOD, etc.). If you’ve tried these and the plugin is still stuck, upgrading to v1.9.2 or later is recommended, as this resolves several known bugs with plugin execution and workflow status handling.

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 (Jan 6, 2026): <!-- Answer --> Thanks for clarifying that the plugin was created and uploaded locally. In Dify v1.91, plugins stuck in the running state are often caused by issues like manifest.yaml formatting errors, missing required methods (such as _validate_credentials in your ToolProvider), or problems in the plugin's configuration (like a missing or incorrect 'type' key) [[details](https://github.com/langgenius/dify-official-plugins/issues/1953)][[type key error](https://github.com/langgenius/dify-official-plugins/issues/729#issuecomment-2921873510)]. Other common causes include Docker network misconfiguration, dependency installation failures, or the plugin code not yielding a completion event (e.g., the generator never finishes) [[plugin lifecycle](https://github.com/langgenius/dify/blob/357548ca07b9c470b5c9a777edef0769b5e47219/api/core/tools/plugin_tool/tool.py#L13-L88)]. Timeout misconfiguration can also cause this—make sure PLUGIN_MAX_EXECUTION_TIMEOUT and PLUGIN_DAEMON_TIMEOUT are set to at least 600 in your .env and docker-compose.yaml, then restart your containers [[timeout fix](https://github.com/langgenius/dify/pull/29785)]. To help pinpoint the issue, could you share: - The plugin type (Python, ComfyUI, etc.) - Your manifest.yaml and ToolProvider code (especially _validate_credentials) - Any relevant plugin_daemon or Docker logs during plugin execution - The workflow JSON or configuration using the plugin Also, check your browser console for frontend errors and verify your .env settings (FILES_URL, INSTALL_METHOD, etc.). If you’ve tried these and the plugin is still stuck, upgrading to v1.9.2 or later is recommended, as this resolves several known bugs with plugin execution and workflow status handling. <!-- 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/0aeb139d-9127-41b7-9402-b8a7e9680a9b?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/0aeb139d-9127-41b7-9402-b8a7e9680a9b?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/0aeb139d-9127-41b7-9402-b8a7e9680a9b?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/0aeb139d-9127-41b7-9402-b8a7e9680a9b?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/0aeb139d-9127-41b7-9402-b8a7e9680a9b?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/0aeb139d-9127-41b7-9402-b8a7e9680a9b?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/0aeb139d-9127-41b7-9402-b8a7e9680a9b?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=Thanks%20for%20clarifying%20that%20the%20plugin%20was%20created%20and%20uploaded%20locally.%20In%20Dify%20v1.91%2C%20plugins%20stuck%20in%20the%20running%20state%20are%20often%20caused%20by%20issues%20like%20manifest.yaml%20formatting%20errors%2C%20missing%20required%20methods%20%28such%20as%20_validate_credentials%20in%20your%20ToolProvider%29%2C%20or%20problems%20in%20the%20plugin%27s%20configuration%20%28like%20a%20missing%20or%20incorrect%20%27type%27%20key%29%E2%80%AF%5B%5Bdetails%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/1953%29%5D%5B%5Btype%20key%20error%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/729%23issuecomment-2921873510%29%5D.%20%0A%0AOther%20common%20causes%20include%20Docker%20network%20misconfiguration%2C%20dependency%20installation%20failures%2C%20or%20the%20plugin%20code%20not%20yielding%20a%20completion%20event%20%28e.g.%2C%20the%20generator%20never%20finishes%29%E2%80%AF%5B%5Bplugin%20lifecycle%5D%28https%3A//github.com/langgenius/dify/blob/357548ca07b9c470b5c9a777edef0769b5e47219/api/core/tools/plugin_tool/tool.py%23L13-L88%29%5D.%20Timeout%20misconfiguration%20can%20also%20cause%20this%E2%80%94make%20sure%20PLUGIN_MAX_EXECUTION_TIMEOUT%20and%20PLUGIN_DAEMON_TIMEOUT%20are%20set%20to%20at%20least%20600%20in%20your%20.env%20and%20docker-compose.yaml%2C%20then%20restart%20your%20containers%E2%80%AF%5B%5Btimeout%20fix%5D%28https%3A//github.com/langgenius/dify/pull/29785%29%5D.%0A%0ATo%20help%20pinpoint%20the%20issue%2C%20could%20you%20share%3A%0A-%20The%20plugin%20type%20%28Python%2C%20ComfyUI%2C%20etc.%29%0A-%20Your%20manifest.yaml%20and%20ToolProvider%20code%20%28especially%20_validate_credentials%29%0A-%20Any%20relevant%20plugin_daemon%20or%20Docker%20logs%20during%20plugin%20execution%0A-%20The%20workflow%20JSON%20or%20configuration%20using%20the%20plugin%0A%0AAlso%2C%20check%20your%20browser%20console%20for%20frontend%20errors%20and%20verify%20your%20.env%20settings%20%28FILES_URL%2C%20INSTALL_METHOD%2C%20etc.%29.%20If%20you%E2%80%99ve%20tried%20these%20and%20the%20plugin%20is%20still%20stuck%2C%20upgrading%20to%20v1.9.2%20or%20later%20is%20recommended%2C%20as%20this%20resolves%20several%20known%20bugs%20with%20plugin%20execution%20and%20workflow%20status%20handling.)&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/30668)
Author
Owner

@zjwi123 commented on GitHub (Jan 7, 2026):

Plugin Type:Python
mainfest.yaml code:
version: 0.0.1
type: plugin
author: zjw
name: image_box_tool
label:
  en_US: Image Box Tool
  zh_Hans: 视觉识别画框器
description:
  en_US: Detect objects and draw boxes.
  zh_Hans: 识别图片物品并绘制红框输出
icon: icon.svg
created_at: "2025-12-30T11:03:02Z"

resource:
  memory: 268435456
  permission:
    models:
      enabled: true

plugins:
  tools:
    - provider/image_box_tool.yaml

meta:
  version: 0.0.1
  arch:
    - amd64
    - arm64
  runner:
    language: python
    version: "3.12"
    entrypoint: main

tool code:
import json
import io
import logging

引入必要的类型

from typing import Any, Generator
from dify_plugin import Tool
from dify_plugin.entities.tool_entities import ToolInvokeMessage

class DetectAndDrawTool(Tool):
    def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage, None, None]:
       
        # 1. 发送启动日志(如果能看到这就说明依赖安装成功了)
        yield self.create_text_message("【调试】插件已启动,正在加载依赖...")
       
        try:
            from PIL import Image, ImageDraw
        except ImportError:
            yield self.create_text_message("【严重错误】Pillow 库未安装!请检查 requirements.txt 文件。")
            return

        yield self.create_text_message("【调试】依赖加载成功,开始处理数据...")

        try:
            # 2. 获取参数
            image_file = tool_parameters.get('image_file')
            boxes_input = tool_parameters.get('boxes_json', '')
            box_color = tool_parameters.get('box_color', 'red')

            if not image_file:
                yield self.create_text_message("【错误】未接收到图片文件。")
                return

            # 3. 核心解析逻辑:专门处理你的数据结构
            # 输入数据示例: { "cleaned_json": "[...]" }
            rects = []
           
            # 调试:打印原始输入类型和前50个字符
            input_preview = str(boxes_input)[:100]
            yield self.create_text_message(f"【调试】接收到的数据片段: {input_preview}")

            try:
                # 第一层解析:处理传入的 JSON 字符串或字典
                if isinstance(boxes_input, str):
                    data_level_1 = json.loads(boxes_input)
                else:
                    data_level_1 = boxes_input

                # 第二层解析:提取 cleaned_json 并解析其内部的字符串
                if isinstance(data_level_1, dict) and "cleaned_json" in data_level_1:
                    inner_content = data_level_1["cleaned_json"]
                    # 如果 cleaned_json 对应的值还是字符串,需要再次 load
                    if isinstance(inner_content, str):
                        rects = json.loads(inner_content)
                    else:
                        rects = inner_content
                elif isinstance(data_level_1, list):
                    rects = data_level_1
                else:
                    # 如果没有 cleaned_json 字段,尝试直接把 data_level_1 当作列表
                    rects = data_level_1

                yield self.create_text_message(f"【调试】成功解析出 {len(rects)} 个目标框。")

            except Exception as parse_err:
                yield self.create_text_message(f"【解析失败】无法解析 JSON 数据: {str(parse_err)}")
                return

            # 4. 绘图处理
            img = Image.open(io.BytesIO(image_file.blob))
            draw = ImageDraw.Draw(img)

            for item in rects:
                # 兼容 bbox_2d (你的数据) 和 points
                bbox = item.get('bbox_2d') or item.get('points')
                label = item.get('label', 'unknown')

                if bbox and isinstance(bbox, list) and len(bbox) == 4:
                    try:
                        draw.rectangle(bbox, outline=box_color, width=5)
                        # 简单的文字绘制
                        draw.text((bbox[0], bbox[1] - 12), str(label), fill=box_color)
                    except Exception:
                        pass # 忽略绘图错误,保证流程继续

            # 5. 保存并返回
            output_buffer = io.BytesIO()
            img.save(output_buffer, format='PNG')
           
            yield self.create_blob_message(
                content=output_buffer.getvalue(),
                meta={"mime_type": "image/png"}
            )
            yield self.create_text_message("【成功】图片处理完毕。")

        except Exception as e:
            # 捕获所有未预料的错误,防止一直转圈
            import traceback
            err_msg = traceback.format_exc()
            yield self.create_text_message(f"【系统崩溃】插件运行发生异常: {str(e)}\n{err_msg}")

zjw
@.***

     原始邮件

发件人:dosubot[bot] @.>
发件时间:2026年1月7日 11:55
收件人:langgenius/dify @.
>
抄送:zjwi123 @.>, Mention @.>
主题:Re: [langgenius/dify] The plugin is stuck in the running state.(Issue #30668)

dosubot[bot] left a comment (langgenius/dify#30668)

Thanks for clarifying that the plugin was created and uploaded locally. In Dify v1.91, plugins stuck in the running state are often caused by issues like manifest.yaml formatting errors, missing required methods (such as _validate_credentials in your ToolProvider), or problems in the plugin's configuration (like a missing or incorrect 'type' key) [details][type key error].

Other common causes include Docker network misconfiguration, dependency installation failures, or the plugin code not yielding a completion event (e.g., the generator never finishes) [plugin lifecycle]. Timeout misconfiguration can also cause this—make sure PLUGIN_MAX_EXECUTION_TIMEOUT and PLUGIN_DAEMON_TIMEOUT are set to at least 600 in your .env and docker-compose.yaml, then restart your containers [timeout fix].

To help pinpoint the issue, could you share:

The plugin type (Python, ComfyUI, etc.)

Your manifest.yaml and ToolProvider code (especially _validate_credentials)

Any relevant plugin_daemon or Docker logs during plugin execution

The workflow JSON or configuration using the plugin

Also, check your browser console for frontend errors and verify your .env settings (FILES_URL, INSTALL_METHOD, etc.). If you’ve tried these and the plugin is still stuck, upgrading to v1.9.2 or later is recommended, as this resolves several known bugs with plugin execution and workflow status handling.

To reply, just mention @dosu.

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

   


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.

@zjwi123 commented on GitHub (Jan 7, 2026): Plugin Type:Python mainfest.yaml code: version: 0.0.1 type: plugin author: zjw name: image_box_tool label: &nbsp; en_US: Image Box Tool &nbsp; zh_Hans: 视觉识别画框器 description: &nbsp; en_US: Detect objects and draw boxes. &nbsp; zh_Hans: 识别图片物品并绘制红框输出 icon: icon.svg created_at: "2025-12-30T11:03:02Z" resource: &nbsp; memory: 268435456 &nbsp; permission: &nbsp; &nbsp; models: &nbsp; &nbsp; &nbsp; enabled: true plugins: &nbsp; tools: &nbsp; &nbsp; - provider/image_box_tool.yaml meta: &nbsp; version: 0.0.1 &nbsp; arch: &nbsp; &nbsp; - amd64 &nbsp; &nbsp; - arm64 &nbsp; runner: &nbsp; &nbsp; language: python &nbsp; &nbsp; version: "3.12" &nbsp; &nbsp; entrypoint: main tool code: import json import io import logging # 引入必要的类型 from typing import Any, Generator from dify_plugin import&nbsp;Tool from dify_plugin.entities.tool_entities import&nbsp;ToolInvokeMessage class DetectAndDrawTool(Tool): &nbsp; &nbsp; def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -&gt; Generator[ToolInvokeMessage, None, None]: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 1. 发送启动日志(如果能看到这就说明依赖安装成功了) &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message("【调试】插件已启动,正在加载依赖...") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; from PIL import Image, ImageDraw &nbsp; &nbsp; &nbsp; &nbsp; except ImportError: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message("【严重错误】Pillow 库未安装!请检查 requirements.txt 文件。") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message("【调试】依赖加载成功,开始处理数据...") &nbsp; &nbsp; &nbsp; &nbsp; try: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 2. 获取参数 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; image_file = tool_parameters.get('image_file') &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boxes_input = tool_parameters.get('boxes_json', '') &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; box_color = tool_parameters.get('box_color', 'red') &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not image_file: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message("【错误】未接收到图片文件。") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 3. 核心解析逻辑:专门处理你的数据结构 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 输入数据示例: { "cleaned_json": "[...]" } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rects =&nbsp;[] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 调试:打印原始输入类型和前50个字符 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; input_preview = str(boxes_input)[:100] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message(f"【调试】接收到的数据片段: {input_preview}") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 第一层解析:处理传入的 JSON 字符串或字典 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if isinstance(boxes_input, str): &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data_level_1 = json.loads(boxes_input) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data_level_1 = boxes_input &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 第二层解析:提取 cleaned_json 并解析其内部的字符串 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if isinstance(data_level_1, dict) and "cleaned_json" in data_level_1: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inner_content = data_level_1["cleaned_json"] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 如果 cleaned_json 对应的值还是字符串,需要再次 load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if isinstance(inner_content, str): &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rects = json.loads(inner_content) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rects = inner_content &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; elif isinstance(data_level_1, list): &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rects = data_level_1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 如果没有 cleaned_json 字段,尝试直接把 data_level_1 当作列表 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rects = data_level_1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message(f"【调试】成功解析出 {len(rects)}&nbsp;个目标框。") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; except Exception as parse_err: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message(f"【解析失败】无法解析 JSON 数据: {str(parse_err)}") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 4. 绘图处理 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; img = Image.open(io.BytesIO(image_file.blob)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; draw = ImageDraw.Draw(img) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for item in rects: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 兼容 bbox_2d (你的数据) 和 points &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bbox = item.get('bbox_2d') or item.get('points') &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; label = item.get('label', 'unknown') &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if bbox and isinstance(bbox, list) and len(bbox) == 4: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; draw.rectangle(bbox, outline=box_color, width=5) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 简单的文字绘制 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; draw.text((bbox[0], bbox[1] - 12), str(label), fill=box_color) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; except Exception: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pass # 忽略绘图错误,保证流程继续 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 5. 保存并返回 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output_buffer = io.BytesIO() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; img.save(output_buffer, format='PNG') &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_blob_message( &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; content=output_buffer.getvalue(), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; meta={"mime_type": "image/png"} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message("【成功】图片处理完毕。") &nbsp; &nbsp; &nbsp; &nbsp; except Exception as e: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 捕获所有未预料的错误,防止一直转圈 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; import traceback &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; err_msg = traceback.format_exc() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield self.create_text_message(f"【系统崩溃】插件运行发生异常: {str(e)}\n{err_msg}") zjw ***@***.*** 原始邮件 发件人:dosubot[bot] ***@***.***&gt; 发件时间:2026年1月7日 11:55 收件人:langgenius/dify ***@***.***&gt; 抄送:zjwi123 ***@***.***&gt;, Mention ***@***.***&gt; 主题:Re: [langgenius/dify] The plugin is stuck in the running state.(Issue #30668) dosubot[bot] left a comment (langgenius/dify#30668) Thanks for clarifying that the plugin was created and uploaded locally. In Dify v1.91, plugins stuck in the running state are often caused by issues like manifest.yaml formatting errors, missing required methods (such as _validate_credentials in your ToolProvider), or problems in the plugin's configuration (like a missing or incorrect 'type' key) [details][type key error]. Other common causes include Docker network misconfiguration, dependency installation failures, or the plugin code not yielding a completion event (e.g., the generator never finishes) [plugin lifecycle]. Timeout misconfiguration can also cause this—make sure PLUGIN_MAX_EXECUTION_TIMEOUT and PLUGIN_DAEMON_TIMEOUT are set to at least 600 in your .env and docker-compose.yaml, then restart your containers [timeout fix]. To help pinpoint the issue, could you share: The plugin type (Python, ComfyUI, etc.) Your manifest.yaml and ToolProvider code (especially _validate_credentials) Any relevant plugin_daemon or Docker logs during plugin execution The workflow JSON or configuration using the plugin Also, check your browser console for frontend errors and verify your .env settings (FILES_URL, INSTALL_METHOD, etc.). If you’ve tried these and the plugin is still stuck, upgrading to v1.9.2 or later is recommended, as this resolves several known bugs with plugin execution and workflow status handling. To reply, just mention @dosu. How did I do? Good&nbsp;| Irrelevant&nbsp;| Incorrect&nbsp;| Verbose&nbsp;| Hallucination&nbsp;| Report 🐛&nbsp;| Other &nbsp;&nbsp;&nbsp; — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.
Author
Owner

@dosubot[bot] commented on GitHub (Jan 7, 2026):

Your plugin being stuck in the running state in Dify v1.91 is most often caused by one or more of these issues:

  1. Manifest/Entrypoint mismatch: The entrypoint: main in your manifest.yaml must point to a Python function that instantiates your plugin and calls plugin.run(). If your main.py does not define a main() function that starts the plugin, the daemon never invokes your tool and the workflow stays stuck. Double-check that your entrypoint matches the official plugin pattern—see this example.

  2. requirements.txt and dependency install: Make sure your plugin package includes a requirements.txt with pillow listed. If Pillow fails to install, or if there are network issues, the plugin daemon can hang during environment setup. Check docker-compose logs plugin_daemon for errors like failed installs, timeouts, or missing .venv symlinks. If you see dependency errors, try increasing PLUGIN_PYTHON_ENV_INIT_TIMEOUT and PLUGIN_MAX_EXECUTION_TIMEOUT in your Docker config, and set a PyPI mirror if needed (details).

  3. Parameter handling: Dify workflows sometimes pass parameters as strings instead of dicts/lists, especially for JSON fields. If your plugin expects a dict but receives a string, JSON parsing will fail and the generator may not yield a completion event, leaving the node stuck. Add debug logs to print the type of boxes_input and handle both string and dict cases robustly. See this explanation.

  4. Timeout config: In v1.91, a bug could cause plugin execution to hang if PLUGIN_MAX_EXECUTION_TIMEOUT and PLUGIN_DAEMON_TIMEOUT are not set to at least 600 in both .env and docker-compose.yaml. After updating these, restart all containers (fix details).

  5. Frontend/backend errors: Check your browser console for errors during workflow execution, and inspect backend logs (docker-compose logs api, worker, plugin_daemon) for stack traces or validation errors.

If you confirm the entrypoint, requirements, and parameter handling are correct, and the plugin still hangs, upgrading to Dify v1.9.2 or later is strongly recommended, as it resolves several known bugs with plugin execution and workflow status handling (upgrade note).

If you need more targeted help, please share:

  • The actual main.py (or entrypoint) code for your plugin
  • The contents of requirements.txt
  • Any relevant error logs from plugin_daemon or the browser console

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 (Jan 7, 2026): <!-- Answer --> Your plugin being stuck in the running state in Dify v1.91 is most often caused by one or more of these issues: 1. **Manifest/Entrypoint mismatch:** The `entrypoint: main` in your manifest.yaml must point to a Python function that instantiates your plugin and calls `plugin.run()`. If your main.py does not define a `main()` function that starts the plugin, the daemon never invokes your tool and the workflow stays stuck. Double-check that your entrypoint matches the official plugin pattern—see [this example](https://github.com/langgenius/dify-official-plugins/blob/b3ae207b01ec654c75c7f2d34d0565c960f26806/tools/aihubmix_image/main.py#L8-L18). 2. **requirements.txt and dependency install:** Make sure your plugin package includes a requirements.txt with `pillow` listed. If Pillow fails to install, or if there are network issues, the plugin daemon can hang during environment setup. Check `docker-compose logs plugin_daemon` for errors like failed installs, timeouts, or missing `.venv` symlinks. If you see dependency errors, try increasing `PLUGIN_PYTHON_ENV_INIT_TIMEOUT` and `PLUGIN_MAX_EXECUTION_TIMEOUT` in your Docker config, and set a PyPI mirror if needed ([details](https://github.com/langgenius/dify-official-plugins/issues/2086)). 3. **Parameter handling:** Dify workflows sometimes pass parameters as strings instead of dicts/lists, especially for JSON fields. If your plugin expects a dict but receives a string, JSON parsing will fail and the generator may not yield a completion event, leaving the node stuck. Add debug logs to print the type of `boxes_input` and handle both string and dict cases robustly. See [this explanation](https://github.com/langgenius/dify/issues/29977#issuecomment-3680823768). 4. **Timeout config:** In v1.91, a bug could cause plugin execution to hang if `PLUGIN_MAX_EXECUTION_TIMEOUT` and `PLUGIN_DAEMON_TIMEOUT` are not set to at least 600 in both `.env` and `docker-compose.yaml`. After updating these, restart all containers ([fix details](https://github.com/langgenius/dify/pull/29785)). 5. **Frontend/backend errors:** Check your browser console for errors during workflow execution, and inspect backend logs (`docker-compose logs api`, `worker`, `plugin_daemon`) for stack traces or validation errors. If you confirm the entrypoint, requirements, and parameter handling are correct, and the plugin still hangs, upgrading to Dify v1.9.2 or later is strongly recommended, as it resolves several known bugs with plugin execution and workflow status handling ([upgrade note](https://github.com/langgenius/dify-official-plugins/issues/2012)). If you need more targeted help, please share: - The actual main.py (or entrypoint) code for your plugin - The contents of requirements.txt - Any relevant error logs from plugin_daemon or the browser console <!-- 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/8d3cc792-a564-4f33-b662-c18b8a6bd46d?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/8d3cc792-a564-4f33-b662-c18b8a6bd46d?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/8d3cc792-a564-4f33-b662-c18b8a6bd46d?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/8d3cc792-a564-4f33-b662-c18b8a6bd46d?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/8d3cc792-a564-4f33-b662-c18b8a6bd46d?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/8d3cc792-a564-4f33-b662-c18b8a6bd46d?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/8d3cc792-a564-4f33-b662-c18b8a6bd46d?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=Your%20plugin%20being%20stuck%20in%20the%20running%20state%20in%20Dify%20v1.91%20is%20most%20often%20caused%20by%20one%20or%20more%20of%20these%20issues%3A%0A%0A1.%20%2A%2AManifest/Entrypoint%20mismatch%3A%2A%2A%20The%20%60entrypoint%3A%20main%60%20in%20your%20manifest.yaml%20must%20point%20to%20a%20Python%20function%20that%20instantiates%20your%20plugin%20and%20calls%20%60plugin.run%28%29%60.%20If%20your%20main.py%20does%20not%20define%20a%20%60main%28%29%60%20function%20that%20starts%20the%20plugin%2C%20the%20daemon%20never%20invokes%20your%20tool%20and%20the%20workflow%20stays%20stuck.%20Double-check%20that%20your%20entrypoint%20matches%20the%20official%20plugin%20pattern%E2%80%94see%20%5Bthis%20example%5D%28https%3A//github.com/langgenius/dify-official-plugins/blob/b3ae207b01ec654c75c7f2d34d0565c960f26806/tools/aihubmix_image/main.py%23L8-L18%29.%0A%0A2.%20%2A%2Arequirements.txt%20and%20dependency%20install%3A%2A%2A%20Make%20sure%20your%20plugin%20package%20includes%20a%20requirements.txt%20with%20%60pillow%60%20listed.%20If%20Pillow%20fails%20to%20install%2C%20or%20if%20there%20are%20network%20issues%2C%20the%20plugin%20daemon%20can%20hang%20during%20environment%20setup.%20Check%20%60docker-compose%20logs%20plugin_daemon%60%20for%20errors%20like%20failed%20installs%2C%20timeouts%2C%20or%20missing%20%60.venv%60%20symlinks.%20If%20you%20see%20dependency%20errors%2C%20try%20increasing%20%60PLUGIN_PYTHON_ENV_INIT_TIMEOUT%60%20and%20%60PLUGIN_MAX_EXECUTION_TIMEOUT%60%20in%20your%20Docker%20config%2C%20and%20set%20a%20PyPI%20mirror%20if%20needed%20%28%5Bdetails%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/2086%29%29.%0A%0A3.%20%2A%2AParameter%20handling%3A%2A%2A%20Dify%20workflows%20sometimes%20pass%20parameters%20as%20strings%20instead%20of%20dicts/lists%2C%20especially%20for%20JSON%20fields.%20If%20your%20plugin%20expects%20a%20dict%20but%20receives%20a%20string%2C%20JSON%20parsing%20will%20fail%20and%20the%20generator%20may%20not%20yield%20a%20completion%20event%2C%20leaving%20the%20node%20stuck.%20Add%20debug%20logs%20to%20print%20the%20type%20of%20%60boxes_input%60%20and%20handle%20both%20string%20and%20dict%20cases%20robustly.%20See%20%5Bthis%20explanation%5D%28https%3A//github.com/langgenius/dify/issues/29977%23issuecomment-3680823768%29.%0A%0A4.%20%2A%2ATimeout%20config%3A%2A%2A%20In%20v1.91%2C%20a%20bug%20could%20cause%20plugin%20execution%20to%20hang%20if%20%60PLUGIN_MAX_EXECUTION_TIMEOUT%60%20and%20%60PLUGIN_DAEMON_TIMEOUT%60%20are%20not%20set%20to%20at%20least%20600%20in%20both%20%60.env%60%20and%20%60docker-compose.yaml%60.%20After%20updating%20these%2C%20restart%20all%20containers%20%28%5Bfix%20details%5D%28https%3A//github.com/langgenius/dify/pull/29785%29%29.%0A%0A5.%20%2A%2AFrontend/backend%20errors%3A%2A%2A%20Check%20your%20browser%20console%20for%20errors%20during%20workflow%20execution%2C%20and%20inspect%20backend%20logs%20%28%60docker-compose%20logs%20api%60%2C%20%60worker%60%2C%20%60plugin_daemon%60%29%20for%20stack%20traces%20or%20validation%20errors.%0A%0AIf%20you%20confirm%20the%20entrypoint%2C%20requirements%2C%20and%20parameter%20handling%20are%20correct%2C%20and%20the%20plugin%20still%20hangs%2C%20upgrading%20to%20Dify%20v1.9.2%20or%20later%20is%20strongly%20recommended%2C%20as%20it%20resolves%20several%20known%20bugs%20with%20plugin%20execution%20and%20workflow%20status%20handling%20%28%5Bupgrade%20note%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/2012%29%29.%0A%0AIf%20you%20need%20more%20targeted%20help%2C%20please%20share%3A%0A-%20The%20actual%20main.py%20%28or%20entrypoint%29%20code%20for%20your%20plugin%0A-%20The%20contents%20of%20requirements.txt%0A-%20Any%20relevant%20error%20logs%20from%20plugin_daemon%20or%20the%20browser%20console)&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/30668)
Author
Owner

@zjwi123 commented on GitHub (Jan 7, 2026):

Can upgrading the Dify version solve these problems?

°
@.***

@zjwi123 commented on GitHub (Jan 7, 2026): Can upgrading the Dify version solve these problems? ° ***@***.***
Author
Owner

@crazywoola commented on GitHub (Jan 7, 2026):

Please upgrade to the latest version to see if this persists, this version is affected by the https://github.com/langgenius/dify/issues/29277

@crazywoola commented on GitHub (Jan 7, 2026): Please upgrade to the latest version to see if this persists, this version is affected by the https://github.com/langgenius/dify/issues/29277
Author
Owner

@Jiixiang commented on GitHub (Jan 13, 2026):

Can upgrading the Dify version solve these problems?

°
@.***
升级 Dify 版本能否解决这些问题?

°
@.***
May I ask whether this issue has been resolved after the version upgrade?

@Jiixiang commented on GitHub (Jan 13, 2026): > Can upgrading the Dify version solve these problems? > > > > > > > ° > ***@***.*** > 升级 Dify 版本能否解决这些问题? > > > > > > > ° > ***@***.*** May I ask whether this issue has been resolved after the version upgrade?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#21489