dify - 💡(How to fix) Fix Error occurred when installing local plugin [4 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
langgenius/dify#35125Fetched 2026-04-14 05:56:37
View on GitHub
Comments
4
Participants
3
Timeline
8
Reactions
1
Timeline (top)
commented ×4closed ×1labeled ×1mentioned ×1

Error Message

2026-04-14 09:33:00.171 | 2026-04-14 01:33:00.171 INFO [Dummy-77] [_client.py:1025] f9379ae9594354dfbf3743ee9307442a - HTTP Request: GET http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e "HTTP/1.1 400 Bad Request" 2026-04-14 09:33:00.173 | 2026-04-14 01:33:00.172 ERROR [Dummy-77] [base.py:237] f9379ae9594354dfbf3743ee9307442a - Failed to request plugin daemon, status: 400, url: plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier 2026-04-14 09:33:00.173 | Traceback (most recent call last): 2026-04-14 09:33:00.173 | File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response 2026-04-14 09:33:00.173 | response.raise_for_status() 2026-04-14 09:33:00.173 | File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status 2026-04-14 09:33:00.173 | raise HTTPStatusError(message, request=request, response=self) 2026-04-14 09:33:00.173 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e' 2026-04-14 09:33:00.173 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400 2026-04-14 09:33:00.175 | 2026-04-14 01:33:00.174 ERROR [Dummy-77] [app.py:875] f9379ae9594354dfbf3743ee9307442a - Exception on /console/api/workspaces/current/plugin/install/pkg [POST] 2026-04-14 09:33:00.176 | Traceback (most recent call last): 2026-04-14 09:33:00.176 | File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request 2026-04-14 09:33:00.176 | rv = self.dispatch_request() 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request 2026-04-14 09:33:00.176 | return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/api.py", line 404, in wrapper 2026-04-14 09:33:00.176 | resp = resource(*args, **kwargs) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/.venv/lib/python3.12/site-packages/flask/views.py", line 110, in view 2026-04-14 09:33:00.176 | return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return] 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/resource.py", line 41, in dispatch_request 2026-04-14 09:33:00.176 | resp = meth(*args, **kwargs) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/controllers/console/wraps.py", line 227, in decorated 2026-04-14 09:33:00.176 | return view(*args, **kwargs) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/libs/login.py", line 97, in decorated_view 2026-04-14 09:33:00.176 | return current_app.ensure_sync(func)(*args, **kwargs) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/controllers/console/wraps.py", line 48, in decorated 2026-04-14 09:33:00.176 | return view(*args, **kwargs) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/controllers/console/workspace/init.py", line 38, in decorated 2026-04-14 09:33:00.176 | return view(*args, **kwargs) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/controllers/console/workspace/plugin.py", line 362, in post 2026-04-14 09:33:00.176 | response = PluginService.install_from_local_pkg(tenant_id, args.plugin_unique_identifiers) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/services/plugin/plugin_service.py", line 407, in install_from_local_pkg 2026-04-14 09:33:00.176 | resp = manager.decode_plugin_from_identifier(tenant_id, plugin_unique_identifier) 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/core/plugin/impl/plugin.py", line 208, in decode_plugin_from_identifier 2026-04-14 09:33:00.176 | return self._request_with_plugin_daemon_response( 2026-04-14 09:33:00.176 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2026-04-14 09:33:00.176 | File "/app/api/core/plugin/impl/base.py", line 238, in _request_with_plugin_daemon_response 2026-04-14 09:33:00.176 | raise e 2026-04-14 09:33:00.176 | File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response 2026-04-14 09:33:00.176 | response.raise_for_status() 2026-04-14 09:33:00.176 | File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status 2026-04-14 09:33:00.176 | raise HTTPStatusError(message, request=request, response=self) 2026-04-14 09:33:00.176 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e' 2026-04-14 09:33:00.176 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400

Fix Action

Fix / Workaround

install plugins from market is normal,but when installed plugins from local,error occured

2026-04-14 09:33:00.171 | 2026-04-14 01:33:00.171 INFO [Dummy-77] [_client.py:1025] f9379ae9594354dfbf3743ee9307442a - HTTP Request: GET http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e "HTTP/1.1 400 Bad Request"
2026-04-14 09:33:00.173 | 2026-04-14 01:33:00.172 ERROR [Dummy-77] [base.py:237] f9379ae9594354dfbf3743ee9307442a - Failed to request plugin daemon, status: 400, url: plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier
2026-04-14 09:33:00.173 | Traceback (most recent call last):
2026-04-14 09:33:00.173 |   File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.173 |     response.raise_for_status()
2026-04-14 09:33:00.173 |   File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status
2026-04-14 09:33:00.173 |     raise HTTPStatusError(message, request=request, response=self)
2026-04-14 09:33:00.173 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e'
2026-04-14 09:33:00.173 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
2026-04-14 09:33:00.175 | 2026-04-14 01:33:00.174 ERROR [Dummy-77] [app.py:875] f9379ae9594354dfbf3743ee9307442a - Exception on /console/api/workspaces/current/plugin/install/pkg [POST]
2026-04-14 09:33:00.176 | Traceback (most recent call last):
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
2026-04-14 09:33:00.176 |     rv = self.dispatch_request()
2026-04-14 09:33:00.176 |          ^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
2026-04-14 09:33:00.176 |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/api.py", line 404, in wrapper
2026-04-14 09:33:00.176 |     resp = resource(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/views.py", line 110, in view
2026-04-14 09:33:00.176 |     return current_app.ensure_sync(self.dispatch_request)(**kwargs)  # type: ignore[no-any-return]
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/resource.py", line 41, in dispatch_request
2026-04-14 09:33:00.176 |     resp = meth(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/wraps.py", line 227, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/libs/login.py", line 97, in decorated_view
2026-04-14 09:33:00.176 |     return current_app.ensure_sync(func)(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/wraps.py", line 48, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/workspace/__init__.py", line 38, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/workspace/plugin.py", line 362, in post
2026-04-14 09:33:00.176 |     response = PluginService.install_from_local_pkg(tenant_id, args.plugin_unique_identifiers)
2026-04-14 09:33:00.176 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/services/plugin/plugin_service.py", line 407, in install_from_local_pkg
2026-04-14 09:33:00.176 |     resp = manager.decode_plugin_from_identifier(tenant_id, plugin_unique_identifier)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/plugin.py", line 208, in decode_plugin_from_identifier
2026-04-14 09:33:00.176 |     return self._request_with_plugin_daemon_response(
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/base.py", line 238, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.176 |     raise e
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.176 |     response.raise_for_status()
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status
2026-04-14 09:33:00.176 |     raise HTTPStatusError(message, request=request, response=self)
2026-04-14 09:33:00.176 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e'
2026-04-14 09:33:00.176 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400

Code Example

2026-04-14 09:33:00.171 | 2026-04-14 01:33:00.171 INFO [Dummy-77] [_client.py:1025] f9379ae9594354dfbf3743ee9307442a - HTTP Request: GET http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e "HTTP/1.1 400 Bad Request"
2026-04-14 09:33:00.173 | 2026-04-14 01:33:00.172 ERROR [Dummy-77] [base.py:237] f9379ae9594354dfbf3743ee9307442a - Failed to request plugin daemon, status: 400, url: plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier
2026-04-14 09:33:00.173 | Traceback (most recent call last):
2026-04-14 09:33:00.173 |   File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.173 |     response.raise_for_status()
2026-04-14 09:33:00.173 |   File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status
2026-04-14 09:33:00.173 |     raise HTTPStatusError(message, request=request, response=self)
2026-04-14 09:33:00.173 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e'
2026-04-14 09:33:00.173 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
2026-04-14 09:33:00.175 | 2026-04-14 01:33:00.174 ERROR [Dummy-77] [app.py:875] f9379ae9594354dfbf3743ee9307442a - Exception on /console/api/workspaces/current/plugin/install/pkg [POST]
2026-04-14 09:33:00.176 | Traceback (most recent call last):
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
2026-04-14 09:33:00.176 |     rv = self.dispatch_request()
2026-04-14 09:33:00.176 |          ^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
2026-04-14 09:33:00.176 |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/api.py", line 404, in wrapper
2026-04-14 09:33:00.176 |     resp = resource(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/views.py", line 110, in view
2026-04-14 09:33:00.176 |     return current_app.ensure_sync(self.dispatch_request)(**kwargs)  # type: ignore[no-any-return]
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/resource.py", line 41, in dispatch_request
2026-04-14 09:33:00.176 |     resp = meth(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/wraps.py", line 227, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/libs/login.py", line 97, in decorated_view
2026-04-14 09:33:00.176 |     return current_app.ensure_sync(func)(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/wraps.py", line 48, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/workspace/__init__.py", line 38, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/workspace/plugin.py", line 362, in post
2026-04-14 09:33:00.176 |     response = PluginService.install_from_local_pkg(tenant_id, args.plugin_unique_identifiers)
2026-04-14 09:33:00.176 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/services/plugin/plugin_service.py", line 407, in install_from_local_pkg
2026-04-14 09:33:00.176 |     resp = manager.decode_plugin_from_identifier(tenant_id, plugin_unique_identifier)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/plugin.py", line 208, in decode_plugin_from_identifier
2026-04-14 09:33:00.176 |     return self._request_with_plugin_daemon_response(
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/base.py", line 238, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.176 |     raise e
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.176 |     response.raise_for_status()
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status
2026-04-14 09:33:00.176 |     raise HTTPStatusError(message, request=request, response=self)
2026-04-14 09:33:00.176 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e'
2026-04-14 09:33:00.176 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
RAW_BUFFERClick to expand / collapse

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

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

install plugins from market is normal,but when installed plugins from local,error occured

2026-04-14 09:33:00.171 | 2026-04-14 01:33:00.171 INFO [Dummy-77] [_client.py:1025] f9379ae9594354dfbf3743ee9307442a - HTTP Request: GET http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e "HTTP/1.1 400 Bad Request"
2026-04-14 09:33:00.173 | 2026-04-14 01:33:00.172 ERROR [Dummy-77] [base.py:237] f9379ae9594354dfbf3743ee9307442a - Failed to request plugin daemon, status: 400, url: plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier
2026-04-14 09:33:00.173 | Traceback (most recent call last):
2026-04-14 09:33:00.173 |   File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.173 |     response.raise_for_status()
2026-04-14 09:33:00.173 |   File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status
2026-04-14 09:33:00.173 |     raise HTTPStatusError(message, request=request, response=self)
2026-04-14 09:33:00.173 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e'
2026-04-14 09:33:00.173 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
2026-04-14 09:33:00.175 | 2026-04-14 01:33:00.174 ERROR [Dummy-77] [app.py:875] f9379ae9594354dfbf3743ee9307442a - Exception on /console/api/workspaces/current/plugin/install/pkg [POST]
2026-04-14 09:33:00.176 | Traceback (most recent call last):
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
2026-04-14 09:33:00.176 |     rv = self.dispatch_request()
2026-04-14 09:33:00.176 |          ^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
2026-04-14 09:33:00.176 |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/api.py", line 404, in wrapper
2026-04-14 09:33:00.176 |     resp = resource(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask/views.py", line 110, in view
2026-04-14 09:33:00.176 |     return current_app.ensure_sync(self.dispatch_request)(**kwargs)  # type: ignore[no-any-return]
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/flask_restx/resource.py", line 41, in dispatch_request
2026-04-14 09:33:00.176 |     resp = meth(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/wraps.py", line 227, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/libs/login.py", line 97, in decorated_view
2026-04-14 09:33:00.176 |     return current_app.ensure_sync(func)(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/wraps.py", line 48, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/workspace/__init__.py", line 38, in decorated
2026-04-14 09:33:00.176 |     return view(*args, **kwargs)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/controllers/console/workspace/plugin.py", line 362, in post
2026-04-14 09:33:00.176 |     response = PluginService.install_from_local_pkg(tenant_id, args.plugin_unique_identifiers)
2026-04-14 09:33:00.176 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/services/plugin/plugin_service.py", line 407, in install_from_local_pkg
2026-04-14 09:33:00.176 |     resp = manager.decode_plugin_from_identifier(tenant_id, plugin_unique_identifier)
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/plugin.py", line 208, in decode_plugin_from_identifier
2026-04-14 09:33:00.176 |     return self._request_with_plugin_daemon_response(
2026-04-14 09:33:00.176 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/base.py", line 238, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.176 |     raise e
2026-04-14 09:33:00.176 |   File "/app/api/core/plugin/impl/base.py", line 235, in _request_with_plugin_daemon_response
2026-04-14 09:33:00.176 |     response.raise_for_status()
2026-04-14 09:33:00.176 |   File "/app/api/.venv/lib/python3.12/site-packages/httpx/_models.py", line 829, in raise_for_status
2026-04-14 09:33:00.176 |     raise HTTPStatusError(message, request=request, response=self)
2026-04-14 09:33:00.176 | httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://plugin_daemon:5002/plugin/0ab50782-6f79-44ce-b07a-600d7d76eb90/management/decode/from_identifier?plugin_unique_identifier=langgenius%2Fmoonshot%3A0.1.2%40fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e'
2026-04-14 09:33:00.176 | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400

✔️ Expected Behavior

fix bug

❌ Actual Behavior

No response

extent analysis

TL;DR

The issue is likely due to a bad request being sent to the plugin daemon, resulting in a 400 error, and can be fixed by verifying the plugin unique identifier and the request payload.

Guidance

  • Verify that the plugin unique identifier langgenius/moonshot:0.1.2@fb05a53c6a343638d8abf089029cb8f7ac36bb1b2228b63785c2532e0bec4c6e is correct and properly formatted.
  • Check the request payload being sent to the plugin daemon to ensure it is valid and correctly formatted.
  • Review the plugin daemon logs to see if there are any errors or issues that could be causing the 400 error.
  • Test the request using a tool like curl or Postman to see if the issue is specific to the application or a more general problem.

Example

No code example is provided as the issue seems to be related to the request payload or plugin unique identifier, which cannot be verified without more information.

Notes

The issue may be related to a specific plugin or configuration, and more information about the plugin and the request being sent would be needed to provide a more detailed solution.

Recommendation

Apply workaround: Verify the plugin unique identifier and request payload to ensure they are correct and properly formatted, and test the request using a tool like curl or Postman to isolate the issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING