Failed to parse response from plugin daemon to PluginDaemonBasicResponse [list], url: plugin/776b90cf-d4b6-49ea-b530-205e6c0be017/management/tools #15719

Closed
opened 2026-02-21 19:23:02 -05:00 by yindo · 1 comment
Owner

Originally created by @sheng-chen on GitHub (Jul 28, 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.7

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

After opening Dify's tool page, the following error will occur:

2025-07-28 11:48:58 2025-07-28 03:48:58.460 ERROR [Dummy-5] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [list], url: plugin/776b90cf-d4b6-49ea-b530-205e6c0be017/management/tools
2025-07-28 11:48:58 Traceback (most recent call last):
2025-07-28 11:48:58 File "/app/api/core/plugin/impl/base.py", line 154, in _request_with_plugin_daemon_response
2025-07-28 11:48:58 json_response = transformer(json_response)
2025-07-28 11:48:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:48:58 File "/app/api/core/plugin/impl/tool.py", line 19, in transformer
2025-07-28 11:48:58 for provider in json_response.get("data", []):
2025-07-28 11:48:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:48:58 TypeError: 'NoneType' object is not iterable
Image

And it is unable to add the model, always prompting "PluginDaemonInternalServerError: no available node, plugin not found".

2025-07-28 11:54:25 2025-07-28 03:54:25.495 ERROR [Dummy-50] [app.py:875] - Exception on /console/api/workspaces/current/model-providers/langgenius/ollama/ollama/models [POST]
2025-07-28 11:54:25 Traceback (most recent call last):
2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
2025-07-28 11:54:25 rv = self.dispatch_request()
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
2025-07-28 11:54:25 return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask_restful/__init__.py", line 489, in wrapper
2025-07-28 11:54:25 resp = resource(*args, **kwargs)
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask/views.py", line 110, in view
2025-07-28 11:54:25 return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return]
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask_restful/__init__.py", line 604, in dispatch_request
2025-07-28 11:54:25 resp = meth(*args, **kwargs)
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/controllers/console/wraps.py", line 210, in decorated
2025-07-28 11:54:25 return view(*args, **kwargs)
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/libs/login.py", line 61, in decorated_view
2025-07-28 11:54:25 return current_app.ensure_sync(func)(*args, **kwargs)
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/controllers/console/wraps.py", line 31, in decorated
2025-07-28 11:54:25 return view(*args, **kwargs)
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/controllers/console/workspace/models.py", line 154, in post
2025-07-28 11:54:25 model_provider_service.save_model_credentials(
2025-07-28 11:54:25 File "/app/api/services/model_provider_service.py", line 237, in save_model_credentials
2025-07-28 11:54:25 provider_configuration.add_or_update_custom_model_credentials(
2025-07-28 11:54:25 File "/app/api/core/entities/provider_configuration.py", line 422, in add_or_update_custom_model_credentials
2025-07-28 11:54:25 provider_model_record, credentials = self.custom_model_credentials_validate(model_type, model, credentials)
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/core/entities/provider_configuration.py", line 402, in custom_model_credentials_validate
2025-07-28 11:54:25 credentials = model_provider_factory.model_credentials_validate(
2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-07-28 11:54:25 File "/app/api/core/model_runtime/model_providers/model_provider_factory.py", line 191, in model_credentials_validate
2025-07-28 11:54:25 self.plugin_model_manager.validate_model_credentials(
2025-07-28 11:54:25 File "/app/api/core/plugin/impl/model.py", line 137, in validate_model_credentials
2025-07-28 11:54:25 for resp in response:
2025-07-28 11:54:25 ^^^^^^^^
2025-07-28 11:54:25 File "/app/api/core/plugin/impl/base.py", line 211, in _request_with_plugin_daemon_response_stream
2025-07-28 11:54:25 self._handle_plugin_daemon_error(error.error_type, error.message)
2025-07-28 11:54:25 File "/app/api/core/plugin/impl/base.py", line 247, in _handle_plugin_daemon_error
2025-07-28 11:54:25 raise PluginDaemonInternalServerError(description=message)
2025-07-28 11:54:25 core.plugin.impl.exc.PluginDaemonInternalServerError: PluginDaemonInternalServerError: no available node, plugin not found

Image

Although similar problems have been raised on Github, none of the solutions can solve this problem. I have tried setting PIP_MIRROR_URL, rolling back the version (especially docker-plugin_daemon-1), and reinstalling the plugin, but none of them can solve this problem.

✔️ Expected Behavior

Actual Behavior

Originally created by @sheng-chen on GitHub (Jul 28, 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.7 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce After opening Dify's tool page, the following error will occur: ``` 2025-07-28 11:48:58 2025-07-28 03:48:58.460 ERROR [Dummy-5] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [list], url: plugin/776b90cf-d4b6-49ea-b530-205e6c0be017/management/tools 2025-07-28 11:48:58 Traceback (most recent call last): 2025-07-28 11:48:58 File "/app/api/core/plugin/impl/base.py", line 154, in _request_with_plugin_daemon_response 2025-07-28 11:48:58 json_response = transformer(json_response) 2025-07-28 11:48:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:48:58 File "/app/api/core/plugin/impl/tool.py", line 19, in transformer 2025-07-28 11:48:58 for provider in json_response.get("data", []): 2025-07-28 11:48:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:48:58 TypeError: 'NoneType' object is not iterable ``` <img width="3704" height="829" alt="Image" src="https://github.com/user-attachments/assets/d56de9d9-0e80-4fb5-b018-b5d6d6f3f198" /> And it is unable to add the model, always prompting "PluginDaemonInternalServerError: no available node, plugin not found". 2025-07-28 11:54:25 2025-07-28 03:54:25.495 ERROR [Dummy-50] [app.py:875] - Exception on /console/api/workspaces/current/model-providers/langgenius/ollama/ollama/models [POST] 2025-07-28 11:54:25 Traceback (most recent call last): 2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request 2025-07-28 11:54:25 rv = self.dispatch_request() 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request 2025-07-28 11:54:25 return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask_restful/__init__.py", line 489, in wrapper 2025-07-28 11:54:25 resp = resource(*args, **kwargs) 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask/views.py", line 110, in view 2025-07-28 11:54:25 return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return] 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/.venv/lib/python3.12/site-packages/flask_restful/__init__.py", line 604, in dispatch_request 2025-07-28 11:54:25 resp = meth(*args, **kwargs) 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/controllers/console/wraps.py", line 210, in decorated 2025-07-28 11:54:25 return view(*args, **kwargs) 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/libs/login.py", line 61, in decorated_view 2025-07-28 11:54:25 return current_app.ensure_sync(func)(*args, **kwargs) 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/controllers/console/wraps.py", line 31, in decorated 2025-07-28 11:54:25 return view(*args, **kwargs) 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/controllers/console/workspace/models.py", line 154, in post 2025-07-28 11:54:25 model_provider_service.save_model_credentials( 2025-07-28 11:54:25 File "/app/api/services/model_provider_service.py", line 237, in save_model_credentials 2025-07-28 11:54:25 provider_configuration.add_or_update_custom_model_credentials( 2025-07-28 11:54:25 File "/app/api/core/entities/provider_configuration.py", line 422, in add_or_update_custom_model_credentials 2025-07-28 11:54:25 provider_model_record, credentials = self.custom_model_credentials_validate(model_type, model, credentials) 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/core/entities/provider_configuration.py", line 402, in custom_model_credentials_validate 2025-07-28 11:54:25 credentials = model_provider_factory.model_credentials_validate( 2025-07-28 11:54:25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/core/model_runtime/model_providers/model_provider_factory.py", line 191, in model_credentials_validate 2025-07-28 11:54:25 self.plugin_model_manager.validate_model_credentials( 2025-07-28 11:54:25 File "/app/api/core/plugin/impl/model.py", line 137, in validate_model_credentials 2025-07-28 11:54:25 for resp in response: 2025-07-28 11:54:25 ^^^^^^^^ 2025-07-28 11:54:25 File "/app/api/core/plugin/impl/base.py", line 211, in _request_with_plugin_daemon_response_stream 2025-07-28 11:54:25 self._handle_plugin_daemon_error(error.error_type, error.message) 2025-07-28 11:54:25 File "/app/api/core/plugin/impl/base.py", line 247, in _handle_plugin_daemon_error 2025-07-28 11:54:25 raise PluginDaemonInternalServerError(description=message) 2025-07-28 11:54:25 core.plugin.impl.exc.PluginDaemonInternalServerError: PluginDaemonInternalServerError: no available node, plugin not found <img width="1565" height="744" alt="Image" src="https://github.com/user-attachments/assets/d385ab8c-2448-4600-8d6e-8f53babd859c" /> **Although similar problems have been raised on Github, none of the solutions can solve this problem. I have tried setting PIP_MIRROR_URL, rolling back the version (especially docker-plugin_daemon-1), and reinstalling the plugin, but none of them can solve this problem.** ### ✔️ Expected Behavior - ### ❌ Actual Behavior -
yindo added the 🙏 help wanted label 2026-02-21 19:23:02 -05:00
yindo closed this issue 2026-02-21 19:23:02 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jul 28, 2025):

Your errors indicate that the plugin daemon is either not running, unreachable, or not properly registered with the main Dify API. Dify v1.7 expects the plugin daemon to return a response with a non-null data field; if the daemon is down or misconfigured, you'll get the "NoneType is not iterable" error when the code tries to process the response. The "no available node, plugin not found" message means the API can't find or connect to the plugin daemon service, or the plugin isn't registered as expected.

Since you've already tried version rollbacks, plugin reinstalls, and setting PIP_MIRROR_URL, I recommend:

  • Check that the plugin_daemon container is running and healthy (docker ps, docker logs plugin_daemon).
  • Make sure your plugin_daemon image is langgenius/dify-plugin-daemon:0.2.0-local, which is required for Dify v1.7 (see PR #22830).
  • Confirm that your docker-compose configuration has correct networking and environment variables so the API can reach the plugin daemon.
  • Look for errors in the plugin_daemon logs about registration, startup, or network issues.
  • If you have custom plugins, double-check their compatibility with Dify v1.7 and the new plugin daemon version.

Recent changes to plugin daemon management and OAuth credential handling may also affect plugin registration and response parsing (see PR #22744). If the above checks don't resolve the issue, review your plugin daemon's configuration and logs for clues about why it's not registering or responding as expected.

To reply, just mention @dosu.


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

@dosubot[bot] commented on GitHub (Jul 28, 2025): <!-- Answer --> Your errors indicate that the plugin daemon is either not running, unreachable, or not properly registered with the main Dify API. Dify v1.7 expects the plugin daemon to return a response with a non-null data field; if the daemon is down or misconfigured, you'll get the "NoneType is not iterable" error when the code tries to process the response. The "no available node, plugin not found" message means the API can't find or connect to the plugin daemon service, or the plugin isn't registered as expected. Since you've already tried version rollbacks, plugin reinstalls, and setting PIP_MIRROR_URL, I recommend: - Check that the plugin_daemon container is running and healthy (`docker ps`, `docker logs plugin_daemon`). - Make sure your plugin_daemon image is `langgenius/dify-plugin-daemon:0.2.0-local`, which is required for Dify v1.7 ([see PR #22830](https://github.com/langgenius/dify/pull/22830)). - Confirm that your docker-compose configuration has correct networking and environment variables so the API can reach the plugin daemon. - Look for errors in the plugin_daemon logs about registration, startup, or network issues. - If you have custom plugins, double-check their compatibility with Dify v1.7 and the new plugin daemon version. Recent changes to plugin daemon management and OAuth credential handling may also affect plugin registration and response parsing ([see PR #22744](https://github.com/langgenius/dify/pull/22744)). If the above checks don't resolve the issue, review your plugin daemon's configuration and logs for clues about why it's not registering or responding as expected. <!-- 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/a34bb309-4478-471c-ad62-ffbcefcdc3e2?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/a34bb309-4478-471c-ad62-ffbcefcdc3e2?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/a34bb309-4478-471c-ad62-ffbcefcdc3e2?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/a34bb309-4478-471c-ad62-ffbcefcdc3e2?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/a34bb309-4478-471c-ad62-ffbcefcdc3e2?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/a34bb309-4478-471c-ad62-ffbcefcdc3e2?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/a34bb309-4478-471c-ad62-ffbcefcdc3e2?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&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/23053)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#15719