dify1.7.2 report error ERROR [Dummy-1] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: plugin/91ace549-f37d-4e371e4edb1e4/management/list #177

Closed
opened 2026-02-16 00:20:21 -05:00 by yindo · 6 comments
Owner

Originally created by @kerberoszhan on GitHub (Aug 22, 2025).

Self Checks

To make sure we get to you in time, please check the following :)

  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • "Please do not modify this template :) and fill in all the required fields."

Versions

  1. dify-plugin-daemon Version : dify-plugin-daemon:0.1.0-local
  2. dify-api Version : dify-api:1.7.2

Describe the bug
A clear and concise description of what the bug is.

i login dify web ,it appear this error

[2025-08-22 09:23:27 +0000] [1] [INFO] Starting gunicorn 23.0.0
[2025-08-22 09:23:27 +0000] [1] [INFO] Listening at: http://0.0.0.0:5001 (1)
[2025-08-22 09:23:27 +0000] [1] [INFO] Using worker: gevent
[2025-08-22 09:23:27 +0000] [20] [INFO] Booting worker with pid: 20
2025-08-22 09:23:30.033 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads.
2025-08-22 09:32:41.423 ERROR [Dummy-1] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:42.467 ERROR [Dummy-2] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:44.510 ERROR [Dummy-3] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:50.347 ERROR [Dummy-4] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:51.385 ERROR [Dummy-5] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:53.444 ERROR [Dummy-6] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:57.479 ERROR [Dummy-7] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type

To Reproduce
Steps to reproduce the behavior:

  1. login dify web

below is full dify-api log

kubectl -n sykjdify logs dify-api-0 -f

Running migrations
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/entrypoint.sh: line 7: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
2025-08-22 09:23:14.263 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads.
Preparing database migration...
Starting database migration.
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> 64b051264f32, init
INFO [alembic.runtime.migration] Running upgrade 64b051264f32 -> 9f4e3427ea84, add created by role
INFO [alembic.runtime.migration] Running upgrade 9f4e3427ea84 -> a45f4dfde53b, add language to recommend apps
INFO [alembic.runtime.migration] Running upgrade a45f4dfde53b -> 614f77cecc48, add last active at
INFO [alembic.runtime.migration] Running upgrade 614f77cecc48 -> e32f6ccb87c6, e08af0a69ccefbb59fa80c778efee300bb780980
INFO [alembic.runtime.migration] Running upgrade e32f6ccb87c6 -> d3d503a3471c, add is_deleted to conversations
INFO [alembic.runtime.migration] Running upgrade d3d503a3471c -> a5b56fb053ef, app config add speech_to_text
INFO [alembic.runtime.migration] Running upgrade a5b56fb053ef -> 2beac44e5f5f, add is_universal in apps
INFO [alembic.runtime.migration] Running upgrade 2beac44e5f5f -> 7ce5a52e4eee, add tool providers
INFO [alembic.runtime.migration] Running upgrade 7ce5a52e4eee -> 8d2d099ceb74, add_qa_model_support
INFO [alembic.runtime.migration] Running upgrade 8d2d099ceb74 -> 16fa53d9faec, add provider model support
INFO [alembic.runtime.migration] Running upgrade 16fa53d9faec -> e35ed59becda, modify quota limit field type
INFO [alembic.runtime.migration] Running upgrade e35ed59becda -> bf0aec5ba2cf, add provider order
INFO [alembic.runtime.migration] Running upgrade bf0aec5ba2cf -> 5022897aaceb, add model name in embedding
INFO [alembic.runtime.migration] Running upgrade 5022897aaceb -> 2c8af9671032, add_qa_document_language
INFO [alembic.runtime.migration] Running upgrade 2c8af9671032 -> e8883b0148c9, add_dataset_model_name
INFO [alembic.runtime.migration] Running upgrade e8883b0148c9 -> 853f9b9cd3b6, add message price unit
INFO [alembic.runtime.migration] Running upgrade 853f9b9cd3b6 -> 4bcffcd64aa4, update_dataset_model_field_null_available
INFO [alembic.runtime.migration] Running upgrade 4bcffcd64aa4 -> 6dcb43972bdc, add_dataset_retriever_resource
INFO [alembic.runtime.migration] Running upgrade 6dcb43972bdc -> 77e83833755c, add_app_config_retriever_resource
INFO [alembic.runtime.migration] Running upgrade 77e83833755c -> 6e2cfb077b04, add_dataset_collection_binding
INFO [alembic.runtime.migration] Running upgrade 6e2cfb077b04 -> ab23c11305d4, add dataset query variable at app model configs.
INFO [alembic.runtime.migration] Running upgrade ab23c11305d4 -> 2e9819ca5b28, add_tenant_id_in_api_token
INFO [alembic.runtime.migration] Running upgrade 2e9819ca5b28 -> b3a09c049e8e, add advanced prompt templates
INFO [alembic.runtime.migration] Running upgrade b3a09c049e8e -> 968fff4c0ab9, add_api_based_extension
INFO [alembic.runtime.migration] Running upgrade 968fff4c0ab9 -> a9836e3baeee, add external_data_tools in app model config
INFO [alembic.runtime.migration] Running upgrade a9836e3baeee -> 8fe468ba0ca5, add gpt4v supports
INFO [alembic.runtime.migration] Running upgrade 8fe468ba0ca5 -> fca025d3b60f, add-dataset-retrieval-model
INFO [alembic.runtime.migration] Running upgrade fca025d3b60f -> e1901f623fd0, add-annotation-reply
INFO [alembic.runtime.migration] Running upgrade e1901f623fd0 -> 46976cc39132, add-annotation-histoiry-score
INFO [alembic.runtime.migration] Running upgrade 46976cc39132 -> f2a6fc85e260, add_anntation_history_message_id
INFO [alembic.runtime.migration] Running upgrade f2a6fc85e260 -> 714aafe25d39, add_anntation_history_match_response
INFO [alembic.runtime.migration] Running upgrade 714aafe25d39 -> 246ba09cbbdb, add_app_anntation_setting
INFO [alembic.runtime.migration] Running upgrade 246ba09cbbdb -> 88072f0caa04, add custom config in tenant
INFO [alembic.runtime.migration] Running upgrade 88072f0caa04 -> 187385f442fc, modify provider model name length
INFO [alembic.runtime.migration] Running upgrade 187385f442fc -> 89c7899ca936, empty message
INFO [alembic.runtime.migration] Running upgrade 89c7899ca936 -> 3ef9b2b6bee6, add_assistant_app
INFO [alembic.runtime.migration] Running upgrade 3ef9b2b6bee6 -> ad472b61a054, add api provider icon
INFO [alembic.runtime.migration] Running upgrade ad472b61a054 -> 8ec536f3c800, rename api provider credentials
INFO [alembic.runtime.migration] Running upgrade 8ec536f3c800 -> 00bacef91f18, rename api provider description
INFO [alembic.runtime.migration] Running upgrade 00bacef91f18 -> f25003750af4, add created/updated at
INFO [alembic.runtime.migration] Running upgrade f25003750af4 -> c71211c8f604, add tool_invoke_model_log
INFO [alembic.runtime.migration] Running upgrade c71211c8f604 -> 114eed84c228, remove tool id from model invoke
INFO [alembic.runtime.migration] Running upgrade 114eed84c228 -> 4829e54d2fee, change message chain id to nullable
INFO [alembic.runtime.migration] Running upgrade 4829e54d2fee -> 053da0c1d756, add api tool privacy
INFO [alembic.runtime.migration] Running upgrade 053da0c1d756 -> 4823da1d26cf, add tool file
INFO [alembic.runtime.migration] Running upgrade 4823da1d26cf -> 9fafbd60eca1, add message file belongs to
INFO [alembic.runtime.migration] Running upgrade 9fafbd60eca1 -> 8ae9bc661daa, add tool conversation variables idx
INFO [alembic.runtime.migration] Running upgrade 8ae9bc661daa -> 23db93619b9d, add message files into agent thought
INFO [alembic.runtime.migration] Running upgrade 23db93619b9d -> de95f5c77138, migration serpapi_api_key
INFO [alembic.runtime.migration] Running upgrade de95f5c77138 -> b24be59fbb04, empty message
INFO [alembic.runtime.migration] Running upgrade b24be59fbb04 -> dfb3b7f477da, add-tool-index
INFO [alembic.runtime.migration] Running upgrade dfb3b7f477da -> 380c6aa5a70d, add tool labels to agent thought
INFO [alembic.runtime.migration] Running upgrade 380c6aa5a70d -> 16830a790f0f, empty message
INFO [alembic.runtime.migration] Running upgrade 16830a790f0f -> a8f9b3c45e4a, add_tenant_id_db_index
INFO [alembic.runtime.migration] Running upgrade a8f9b3c45e4a -> 17b5ab037c40, add-keyworg-table-storage-type
INFO [alembic.runtime.migration] Running upgrade 17b5ab037c40 -> a8d7385a7b66, add-embeddings-provider-name
INFO [alembic.runtime.migration] Running upgrade a8d7385a7b66 -> b289e2408ee2, add workflow
INFO [alembic.runtime.migration] Running upgrade b289e2408ee2 -> cc04d0998d4d, set model config column nullable
INFO [alembic.runtime.migration] Running upgrade cc04d0998d4d -> f9107f83abab, add desc for apps
INFO [alembic.runtime.migration] Running upgrade f9107f83abab -> 42e85ed5564d, conversation columns set nullable
INFO [alembic.runtime.migration] Running upgrade 42e85ed5564d -> b5429b71023c, messages columns set nullable
INFO [alembic.runtime.migration] Running upgrade b5429b71023c -> 563cf8bf777b, enable tool file without conversation id
INFO [alembic.runtime.migration] Running upgrade 563cf8bf777b -> e2eacc9a1b63, add status for message
INFO [alembic.runtime.migration] Running upgrade e2eacc9a1b63 -> c3311b089690, add tool meta
INFO [alembic.runtime.migration] Running upgrade c3311b089690 -> 3c7cac9521c6, add-tags-and-binding-table
INFO [alembic.runtime.migration] Running upgrade 3c7cac9521c6 -> 47cc7df8c4f3, modify default model name length
INFO [alembic.runtime.migration] Running upgrade 47cc7df8c4f3 -> 5fda94355fce, Custom Disclaimer
INFO [alembic.runtime.migration] Running upgrade 5fda94355fce -> 7bdef072e63a, add workflow tool
INFO [alembic.runtime.migration] Running upgrade 7bdef072e63a -> 3b18fea55204, add tool label bings
INFO [alembic.runtime.migration] Running upgrade 3b18fea55204 -> 9e98fbaffb88, add workflow tool version
INFO [alembic.runtime.migration] Running upgrade 9e98fbaffb88 -> 03f98355ba0e, add workflow tool label and tool bindings idx
INFO [alembic.runtime.migration] Running upgrade 03f98355ba0e -> 64a70a7aab8b, add workflow run index
INFO [alembic.runtime.migration] Running upgrade 64a70a7aab8b -> 4e99a8df00ff, add load balancing
INFO [alembic.runtime.migration] Running upgrade 4e99a8df00ff -> 7b45942e39bb, add-api-key-auth-binding
INFO [alembic.runtime.migration] Running upgrade 7b45942e39bb -> 4ff534e1eb11, add workflow to site
INFO [alembic.runtime.migration] Running upgrade 4ff534e1eb11 -> b69ca54b9208, add chatbot color theme
INFO [alembic.runtime.migration] Running upgrade 4ff534e1eb11 -> 04c602f5dc9b, update AppModelConfig and add table TracingAppConfig
INFO [alembic.runtime.migration] Running upgrade 04c602f5dc9b -> c031d46af369, remove app model config trace config and rename trace app config
INFO [alembic.runtime.migration] Running upgrade c031d46af369 -> 2a3aebbbf4bb, add app tracing
INFO [alembic.runtime.migration] Running upgrade 2a3aebbbf4bb, b69ca54b9208 -> 63f9175e515b, merge branches
INFO [alembic.runtime.migration] Running upgrade 63f9175e515b -> b2602e131636, add workflow_run_id index for message
INFO [alembic.runtime.migration] Running upgrade b2602e131636 -> 7e6a8693e07a, add table dataset_permissions
INFO [alembic.runtime.migration] Running upgrade 7e6a8693e07a -> 161cadc1af8d, add dataset permission tenant id
INFO [alembic.runtime.migration] Running upgrade 161cadc1af8d -> 408176b91ad3, 'add_max_active_requests'
INFO [alembic.runtime.migration] Running upgrade 408176b91ad3 -> fecff1c3da27, remove extra tracing app config table and add idx_dataset_permissions_tenant_
INFO [alembic.runtime.migration] Running upgrade fecff1c3da27 -> 6e957a32015b, add-embedding-cache-created_at_index
INFO [alembic.runtime.migration] Running upgrade 6e957a32015b -> 8e5588e6412e, add environment variable to workflow model
INFO [alembic.runtime.migration] Running upgrade 8e5588e6412e -> 53bf8af60645, update model
INFO [alembic.runtime.migration] Running upgrade 53bf8af60645 -> eeb2e349e6ac, increase max model_name length
INFO [alembic.runtime.migration] Running upgrade eeb2e349e6ac -> 1787fbae959a, update tools original_url length
INFO [alembic.runtime.migration] Running upgrade 1787fbae959a -> 63a83fcf12ba, support conversation variables
INFO [alembic.runtime.migration] Running upgrade 63a83fcf12ba -> 8782057ff0dc, add conversations.dialogue_count
INFO [alembic.runtime.migration] Running upgrade 8782057ff0dc -> a6be81136580, app and site icon type
INFO [alembic.runtime.migration] Running upgrade a6be81136580 -> 2dbe42621d96, rename workflow__conversation_variables to workflow_conversation_variables
INFO [alembic.runtime.migration] Running upgrade 2dbe42621d96 -> d0187d6a88dd, add created_by and updated_by to app, modelconfig, and site
INFO [alembic.runtime.migration] Running upgrade d0187d6a88dd -> 030f4915f36a, add use_icon_as_answer_icon fields for app and site
INFO [alembic.runtime.migration] Running upgrade 030f4915f36a -> 675b5321501b, add node_execution_id into node_executions
INFO [alembic.runtime.migration] Running upgrade 675b5321501b -> d57ba9ebb251, add parent_message_id to messages
INFO [alembic.runtime.migration] Running upgrade d57ba9ebb251 -> 6af6a521a53e, update-retrieval-resource
INFO [alembic.runtime.migration] Running upgrade 6af6a521a53e -> 33f5fac87f29, external_knowledge_api
INFO [alembic.runtime.migration] Running upgrade 33f5fac87f29 -> d8e744d88ed6, fix wrong service-api history
INFO [alembic.runtime.migration] Running upgrade d8e744d88ed6 -> bbadea11becb, add name and size to tool_files
INFO [alembic.runtime.migration] Running upgrade bbadea11becb -> 0251a1c768cc, add-tidb-auth-binding
INFO [alembic.runtime.migration] Running upgrade 0251a1c768cc -> 43fa78bc3b7d, add_white_list
INFO [alembic.runtime.migration] Running upgrade 43fa78bc3b7d -> d3f6769a94a3, Add upload_files.source_url
INFO [alembic.runtime.migration] Running upgrade d3f6769a94a3 -> 93ad8c19c40b, rename conversation variables index name
INFO [alembic.runtime.migration] Running upgrade 93ad8c19c40b -> f4d7ce70a7ca, update upload_files.source_url
INFO [alembic.runtime.migration] Running upgrade f4d7ce70a7ca -> d07474999927, update type of custom_disclaimer to TEXT
INFO [alembic.runtime.migration] Running upgrade d07474999927 -> 09a8d1878d9b, update workflows graph, features and updated_at
INFO [alembic.runtime.migration] Running upgrade 09a8d1878d9b -> 01d6889832f7, add_created_at_index_for_messages
INFO [alembic.runtime.migration] Running upgrade 01d6889832f7 -> cf8f4fc45278, add exceptions_count field to WorkflowRun model
INFO [alembic.runtime.migration] Running upgrade cf8f4fc45278 -> 11b07f66c737, remove unused tool_providers
INFO [alembic.runtime.migration] Running upgrade 11b07f66c737 -> e1944c35e15e, add retry_index field to node-execution model
INFO [alembic.runtime.migration] Running upgrade e1944c35e15e -> d7999dfa4aae, remove workflow_node_executions.retry_index if exists
INFO [alembic.runtime.migration] Running upgrade d7999dfa4aae -> e19037032219, parent-child-index
INFO [alembic.runtime.migration] Running upgrade e19037032219 -> 923752d42eb6, add_auto_disabled_dataset_logs
INFO [alembic.runtime.migration] Running upgrade 923752d42eb6 -> a91b476a53de, change workflow_runs.total_tokens to bigint
INFO [alembic.runtime.migration] Running upgrade a91b476a53de -> ddcc8bbef391, increase max length of builtin tool provider
INFO [alembic.runtime.migration] Running upgrade ddcc8bbef391 -> 08ec4f75af5e, add_tenant_plugin_permisisons
INFO [alembic.runtime.migration] Running upgrade 08ec4f75af5e -> 4413929e1ec2, extend_provider_name_column
INFO [alembic.runtime.migration] Running upgrade 4413929e1ec2 -> 5511c782ee4c, extend provider column
INFO [alembic.runtime.migration] Running upgrade 5511c782ee4c -> ee79d9b1c156, add marked_name and marked_comment in workflows
INFO [alembic.runtime.migration] Running upgrade ee79d9b1c156 -> f051706725cc, add_rate_limit_logs
INFO [alembic.runtime.migration] Running upgrade f051706725cc -> d20049ed0af6, add_metadata_function
INFO [alembic.runtime.migration] Running upgrade d20049ed0af6 -> 6a9f914f656c, change documentsegment and childchunk indexes
INFO [alembic.runtime.migration] Running upgrade 6a9f914f656c -> d28f2004b072, add index for workflow_conversation_variables.conversation_id
INFO [alembic.runtime.migration] Running upgrade d28f2004b072 -> 2adcbe1f5dfb, add WorkflowDraftVariable model
INFO [alembic.runtime.migration] Running upgrade 2adcbe1f5dfb -> 4474872b0ee6, workflow_draft_varaibles add node_execution_id column, add an index for `
INFO [alembic.runtime.migration] Running upgrade 4474872b0ee6 -> 0ab65e1cc7fa, remove sequence_number from workflow_runs
INFO [alembic.runtime.migration] Running upgrade 0ab65e1cc7fa -> 58eb7bdb93fe, add mcp server tool and app server
INFO [alembic.runtime.migration] Running upgrade 58eb7bdb93fe -> 1c9ba48be8e4, add uuidv7 function in SQL
INFO [alembic.runtime.migration] Running upgrade 1c9ba48be8e4 -> 71f5020c6470, tool oauth
INFO [alembic.runtime.migration] Running upgrade 71f5020c6470 -> 1a83934ad6d1, update models
INFO [alembic.runtime.migration] Running upgrade 1a83934ad6d1 -> 375fe79ead14, oauth_refresh_token
INFO [alembic.runtime.migration] Running upgrade 375fe79ead14 -> 8bcc02c9bd07, add_tenant_plugin_autoupgrade_table
INFO [alembic.runtime.migration] Running upgrade 8bcc02c9bd07 -> 532b3f888abf, manual dataset field update
Database migration successful!
[2025-08-22 09:23:27 +0000] [1] [INFO] Starting gunicorn 23.0.0
[2025-08-22 09:23:27 +0000] [1] [INFO] Listening at: http://0.0.0.0:5001 (1)
[2025-08-22 09:23:27 +0000] [1] [INFO] Using worker: gevent
[2025-08-22 09:23:27 +0000] [20] [INFO] Booting worker with pid: 20
2025-08-22 09:23:30.033 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads.
2025-08-22 09:32:41.423 ERROR [Dummy-1] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:42.467 ERROR [Dummy-2] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:44.510 ERROR [Dummy-3] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:50.347 ERROR [Dummy-4] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:51.385 ERROR [Dummy-5] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:53.444 ERROR [Dummy-6] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:32:57.479 ERROR [Dummy-7] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list
Traceback (most recent call last):
File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response
rep = PluginDaemonBasicResponsetype # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse]
data
Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
2025-08-22 09:33:06.381 INFO [Dummy-8] [_client.py:1038] - HTTP Request: GET https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=shanjijian2fe08decb8c48c9fc81d342c0f2ec5390c39cde9848b2ccc3c442 "HTTP/1.1 200 OK"
2025-08-22 09:33:07.415 INFO [Dummy-9] [_client.py:1038] - HTTP Request: GET https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=shanjijian2fe08decb8c48c9fc81d342c0f2ec5390c39cde9848b2ccc3c442 "HTTP/1.1 200 OK"
^C

Originally created by @kerberoszhan on GitHub (Aug 22, 2025). **Self Checks** To make sure we get to you in time, please check the following :) - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify-plugin-daemon/issues), including closed ones. - [x] I confirm that I am using English to submit this report (我已阅读并同意 [Language Policy](https://github.com/langgenius/dify/issues/1542)). - [x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:) - [x] "Please do not modify this template :) and fill in all the required fields." **Versions** 1. dify-plugin-daemon Version : dify-plugin-daemon:0.1.0-local 2. dify-api Version : dify-api:1.7.2 **Describe the bug** A clear and concise description of what the bug is. i login dify web ,it appear this error [2025-08-22 09:23:27 +0000] [1] [INFO] Starting gunicorn 23.0.0 [2025-08-22 09:23:27 +0000] [1] [INFO] Listening at: http://0.0.0.0:5001 (1) [2025-08-22 09:23:27 +0000] [1] [INFO] Using worker: gevent [2025-08-22 09:23:27 +0000] [20] [INFO] Booting worker with pid: 20 2025-08-22 09:23:30.033 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads. 2025-08-22 09:32:41.423 ERROR [Dummy-1] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:42.467 ERROR [Dummy-2] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:44.510 ERROR [Dummy-3] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:50.347 ERROR [Dummy-4] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:51.385 ERROR [Dummy-5] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:53.444 ERROR [Dummy-6] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:57.479 ERROR [Dummy-7] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type **To Reproduce** Steps to reproduce the behavior: 1. login dify web below is full dify-api log # kubectl -n sykjdify logs dify-api-0 -f Running migrations /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /entrypoint.sh: line 7: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) 2025-08-22 09:23:14.263 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads. Preparing database migration... Starting database migration. INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. INFO [alembic.runtime.migration] Running upgrade -> 64b051264f32, init INFO [alembic.runtime.migration] Running upgrade 64b051264f32 -> 9f4e3427ea84, add created by role INFO [alembic.runtime.migration] Running upgrade 9f4e3427ea84 -> a45f4dfde53b, add language to recommend apps INFO [alembic.runtime.migration] Running upgrade a45f4dfde53b -> 614f77cecc48, add last active at INFO [alembic.runtime.migration] Running upgrade 614f77cecc48 -> e32f6ccb87c6, e08af0a69ccefbb59fa80c778efee300bb780980 INFO [alembic.runtime.migration] Running upgrade e32f6ccb87c6 -> d3d503a3471c, add is_deleted to conversations INFO [alembic.runtime.migration] Running upgrade d3d503a3471c -> a5b56fb053ef, app config add speech_to_text INFO [alembic.runtime.migration] Running upgrade a5b56fb053ef -> 2beac44e5f5f, add is_universal in apps INFO [alembic.runtime.migration] Running upgrade 2beac44e5f5f -> 7ce5a52e4eee, add tool providers INFO [alembic.runtime.migration] Running upgrade 7ce5a52e4eee -> 8d2d099ceb74, add_qa_model_support INFO [alembic.runtime.migration] Running upgrade 8d2d099ceb74 -> 16fa53d9faec, add provider model support INFO [alembic.runtime.migration] Running upgrade 16fa53d9faec -> e35ed59becda, modify quota limit field type INFO [alembic.runtime.migration] Running upgrade e35ed59becda -> bf0aec5ba2cf, add provider order INFO [alembic.runtime.migration] Running upgrade bf0aec5ba2cf -> 5022897aaceb, add model name in embedding INFO [alembic.runtime.migration] Running upgrade 5022897aaceb -> 2c8af9671032, add_qa_document_language INFO [alembic.runtime.migration] Running upgrade 2c8af9671032 -> e8883b0148c9, add_dataset_model_name INFO [alembic.runtime.migration] Running upgrade e8883b0148c9 -> 853f9b9cd3b6, add message price unit INFO [alembic.runtime.migration] Running upgrade 853f9b9cd3b6 -> 4bcffcd64aa4, update_dataset_model_field_null_available INFO [alembic.runtime.migration] Running upgrade 4bcffcd64aa4 -> 6dcb43972bdc, add_dataset_retriever_resource INFO [alembic.runtime.migration] Running upgrade 6dcb43972bdc -> 77e83833755c, add_app_config_retriever_resource INFO [alembic.runtime.migration] Running upgrade 77e83833755c -> 6e2cfb077b04, add_dataset_collection_binding INFO [alembic.runtime.migration] Running upgrade 6e2cfb077b04 -> ab23c11305d4, add dataset query variable at app model configs. INFO [alembic.runtime.migration] Running upgrade ab23c11305d4 -> 2e9819ca5b28, add_tenant_id_in_api_token INFO [alembic.runtime.migration] Running upgrade 2e9819ca5b28 -> b3a09c049e8e, add advanced prompt templates INFO [alembic.runtime.migration] Running upgrade b3a09c049e8e -> 968fff4c0ab9, add_api_based_extension INFO [alembic.runtime.migration] Running upgrade 968fff4c0ab9 -> a9836e3baeee, add external_data_tools in app model config INFO [alembic.runtime.migration] Running upgrade a9836e3baeee -> 8fe468ba0ca5, add gpt4v supports INFO [alembic.runtime.migration] Running upgrade 8fe468ba0ca5 -> fca025d3b60f, add-dataset-retrieval-model INFO [alembic.runtime.migration] Running upgrade fca025d3b60f -> e1901f623fd0, add-annotation-reply INFO [alembic.runtime.migration] Running upgrade e1901f623fd0 -> 46976cc39132, add-annotation-histoiry-score INFO [alembic.runtime.migration] Running upgrade 46976cc39132 -> f2a6fc85e260, add_anntation_history_message_id INFO [alembic.runtime.migration] Running upgrade f2a6fc85e260 -> 714aafe25d39, add_anntation_history_match_response INFO [alembic.runtime.migration] Running upgrade 714aafe25d39 -> 246ba09cbbdb, add_app_anntation_setting INFO [alembic.runtime.migration] Running upgrade 246ba09cbbdb -> 88072f0caa04, add custom config in tenant INFO [alembic.runtime.migration] Running upgrade 88072f0caa04 -> 187385f442fc, modify provider model name length INFO [alembic.runtime.migration] Running upgrade 187385f442fc -> 89c7899ca936, empty message INFO [alembic.runtime.migration] Running upgrade 89c7899ca936 -> 3ef9b2b6bee6, add_assistant_app INFO [alembic.runtime.migration] Running upgrade 3ef9b2b6bee6 -> ad472b61a054, add api provider icon INFO [alembic.runtime.migration] Running upgrade ad472b61a054 -> 8ec536f3c800, rename api provider credentials INFO [alembic.runtime.migration] Running upgrade 8ec536f3c800 -> 00bacef91f18, rename api provider description INFO [alembic.runtime.migration] Running upgrade 00bacef91f18 -> f25003750af4, add created/updated at INFO [alembic.runtime.migration] Running upgrade f25003750af4 -> c71211c8f604, add tool_invoke_model_log INFO [alembic.runtime.migration] Running upgrade c71211c8f604 -> 114eed84c228, remove tool id from model invoke INFO [alembic.runtime.migration] Running upgrade 114eed84c228 -> 4829e54d2fee, change message chain id to nullable INFO [alembic.runtime.migration] Running upgrade 4829e54d2fee -> 053da0c1d756, add api tool privacy INFO [alembic.runtime.migration] Running upgrade 053da0c1d756 -> 4823da1d26cf, add tool file INFO [alembic.runtime.migration] Running upgrade 4823da1d26cf -> 9fafbd60eca1, add message file belongs to INFO [alembic.runtime.migration] Running upgrade 9fafbd60eca1 -> 8ae9bc661daa, add tool conversation variables idx INFO [alembic.runtime.migration] Running upgrade 8ae9bc661daa -> 23db93619b9d, add message files into agent thought INFO [alembic.runtime.migration] Running upgrade 23db93619b9d -> de95f5c77138, migration serpapi_api_key INFO [alembic.runtime.migration] Running upgrade de95f5c77138 -> b24be59fbb04, empty message INFO [alembic.runtime.migration] Running upgrade b24be59fbb04 -> dfb3b7f477da, add-tool-index INFO [alembic.runtime.migration] Running upgrade dfb3b7f477da -> 380c6aa5a70d, add tool labels to agent thought INFO [alembic.runtime.migration] Running upgrade 380c6aa5a70d -> 16830a790f0f, empty message INFO [alembic.runtime.migration] Running upgrade 16830a790f0f -> a8f9b3c45e4a, add_tenant_id_db_index INFO [alembic.runtime.migration] Running upgrade a8f9b3c45e4a -> 17b5ab037c40, add-keyworg-table-storage-type INFO [alembic.runtime.migration] Running upgrade 17b5ab037c40 -> a8d7385a7b66, add-embeddings-provider-name INFO [alembic.runtime.migration] Running upgrade a8d7385a7b66 -> b289e2408ee2, add workflow INFO [alembic.runtime.migration] Running upgrade b289e2408ee2 -> cc04d0998d4d, set model config column nullable INFO [alembic.runtime.migration] Running upgrade cc04d0998d4d -> f9107f83abab, add desc for apps INFO [alembic.runtime.migration] Running upgrade f9107f83abab -> 42e85ed5564d, conversation columns set nullable INFO [alembic.runtime.migration] Running upgrade 42e85ed5564d -> b5429b71023c, messages columns set nullable INFO [alembic.runtime.migration] Running upgrade b5429b71023c -> 563cf8bf777b, enable tool file without conversation id INFO [alembic.runtime.migration] Running upgrade 563cf8bf777b -> e2eacc9a1b63, add status for message INFO [alembic.runtime.migration] Running upgrade e2eacc9a1b63 -> c3311b089690, add tool meta INFO [alembic.runtime.migration] Running upgrade c3311b089690 -> 3c7cac9521c6, add-tags-and-binding-table INFO [alembic.runtime.migration] Running upgrade 3c7cac9521c6 -> 47cc7df8c4f3, modify default model name length INFO [alembic.runtime.migration] Running upgrade 47cc7df8c4f3 -> 5fda94355fce, Custom Disclaimer INFO [alembic.runtime.migration] Running upgrade 5fda94355fce -> 7bdef072e63a, add workflow tool INFO [alembic.runtime.migration] Running upgrade 7bdef072e63a -> 3b18fea55204, add tool label bings INFO [alembic.runtime.migration] Running upgrade 3b18fea55204 -> 9e98fbaffb88, add workflow tool version INFO [alembic.runtime.migration] Running upgrade 9e98fbaffb88 -> 03f98355ba0e, add workflow tool label and tool bindings idx INFO [alembic.runtime.migration] Running upgrade 03f98355ba0e -> 64a70a7aab8b, add workflow run index INFO [alembic.runtime.migration] Running upgrade 64a70a7aab8b -> 4e99a8df00ff, add load balancing INFO [alembic.runtime.migration] Running upgrade 4e99a8df00ff -> 7b45942e39bb, add-api-key-auth-binding INFO [alembic.runtime.migration] Running upgrade 7b45942e39bb -> 4ff534e1eb11, add workflow to site INFO [alembic.runtime.migration] Running upgrade 4ff534e1eb11 -> b69ca54b9208, add chatbot color theme INFO [alembic.runtime.migration] Running upgrade 4ff534e1eb11 -> 04c602f5dc9b, update AppModelConfig and add table TracingAppConfig INFO [alembic.runtime.migration] Running upgrade 04c602f5dc9b -> c031d46af369, remove app model config trace config and rename trace app config INFO [alembic.runtime.migration] Running upgrade c031d46af369 -> 2a3aebbbf4bb, add app tracing INFO [alembic.runtime.migration] Running upgrade 2a3aebbbf4bb, b69ca54b9208 -> 63f9175e515b, merge branches INFO [alembic.runtime.migration] Running upgrade 63f9175e515b -> b2602e131636, add workflow_run_id index for message INFO [alembic.runtime.migration] Running upgrade b2602e131636 -> 7e6a8693e07a, add table dataset_permissions INFO [alembic.runtime.migration] Running upgrade 7e6a8693e07a -> 161cadc1af8d, add dataset permission tenant id INFO [alembic.runtime.migration] Running upgrade 161cadc1af8d -> 408176b91ad3, 'add_max_active_requests' INFO [alembic.runtime.migration] Running upgrade 408176b91ad3 -> fecff1c3da27, remove extra tracing app config table and add idx_dataset_permissions_tenant_ INFO [alembic.runtime.migration] Running upgrade fecff1c3da27 -> 6e957a32015b, add-embedding-cache-created_at_index INFO [alembic.runtime.migration] Running upgrade 6e957a32015b -> 8e5588e6412e, add environment variable to workflow model INFO [alembic.runtime.migration] Running upgrade 8e5588e6412e -> 53bf8af60645, update model INFO [alembic.runtime.migration] Running upgrade 53bf8af60645 -> eeb2e349e6ac, increase max model_name length INFO [alembic.runtime.migration] Running upgrade eeb2e349e6ac -> 1787fbae959a, update tools original_url length INFO [alembic.runtime.migration] Running upgrade 1787fbae959a -> 63a83fcf12ba, support conversation variables INFO [alembic.runtime.migration] Running upgrade 63a83fcf12ba -> 8782057ff0dc, add conversations.dialogue_count INFO [alembic.runtime.migration] Running upgrade 8782057ff0dc -> a6be81136580, app and site icon type INFO [alembic.runtime.migration] Running upgrade a6be81136580 -> 2dbe42621d96, rename workflow__conversation_variables to workflow_conversation_variables INFO [alembic.runtime.migration] Running upgrade 2dbe42621d96 -> d0187d6a88dd, add created_by and updated_by to app, modelconfig, and site INFO [alembic.runtime.migration] Running upgrade d0187d6a88dd -> 030f4915f36a, add use_icon_as_answer_icon fields for app and site INFO [alembic.runtime.migration] Running upgrade 030f4915f36a -> 675b5321501b, add node_execution_id into node_executions INFO [alembic.runtime.migration] Running upgrade 675b5321501b -> d57ba9ebb251, add parent_message_id to messages INFO [alembic.runtime.migration] Running upgrade d57ba9ebb251 -> 6af6a521a53e, update-retrieval-resource INFO [alembic.runtime.migration] Running upgrade 6af6a521a53e -> 33f5fac87f29, external_knowledge_api INFO [alembic.runtime.migration] Running upgrade 33f5fac87f29 -> d8e744d88ed6, fix wrong service-api history INFO [alembic.runtime.migration] Running upgrade d8e744d88ed6 -> bbadea11becb, add name and size to tool_files INFO [alembic.runtime.migration] Running upgrade bbadea11becb -> 0251a1c768cc, add-tidb-auth-binding INFO [alembic.runtime.migration] Running upgrade 0251a1c768cc -> 43fa78bc3b7d, add_white_list INFO [alembic.runtime.migration] Running upgrade 43fa78bc3b7d -> d3f6769a94a3, Add upload_files.source_url INFO [alembic.runtime.migration] Running upgrade d3f6769a94a3 -> 93ad8c19c40b, rename conversation variables index name INFO [alembic.runtime.migration] Running upgrade 93ad8c19c40b -> f4d7ce70a7ca, update upload_files.source_url INFO [alembic.runtime.migration] Running upgrade f4d7ce70a7ca -> d07474999927, update type of custom_disclaimer to TEXT INFO [alembic.runtime.migration] Running upgrade d07474999927 -> 09a8d1878d9b, update workflows graph, features and updated_at INFO [alembic.runtime.migration] Running upgrade 09a8d1878d9b -> 01d6889832f7, add_created_at_index_for_messages INFO [alembic.runtime.migration] Running upgrade 01d6889832f7 -> cf8f4fc45278, add exceptions_count field to WorkflowRun model INFO [alembic.runtime.migration] Running upgrade cf8f4fc45278 -> 11b07f66c737, remove unused tool_providers INFO [alembic.runtime.migration] Running upgrade 11b07f66c737 -> e1944c35e15e, add retry_index field to node-execution model INFO [alembic.runtime.migration] Running upgrade e1944c35e15e -> d7999dfa4aae, remove workflow_node_executions.retry_index if exists INFO [alembic.runtime.migration] Running upgrade d7999dfa4aae -> e19037032219, parent-child-index INFO [alembic.runtime.migration] Running upgrade e19037032219 -> 923752d42eb6, add_auto_disabled_dataset_logs INFO [alembic.runtime.migration] Running upgrade 923752d42eb6 -> a91b476a53de, change workflow_runs.total_tokens to bigint INFO [alembic.runtime.migration] Running upgrade a91b476a53de -> ddcc8bbef391, increase max length of builtin tool provider INFO [alembic.runtime.migration] Running upgrade ddcc8bbef391 -> 08ec4f75af5e, add_tenant_plugin_permisisons INFO [alembic.runtime.migration] Running upgrade 08ec4f75af5e -> 4413929e1ec2, extend_provider_name_column INFO [alembic.runtime.migration] Running upgrade 4413929e1ec2 -> 5511c782ee4c, extend provider column INFO [alembic.runtime.migration] Running upgrade 5511c782ee4c -> ee79d9b1c156, add marked_name and marked_comment in workflows INFO [alembic.runtime.migration] Running upgrade ee79d9b1c156 -> f051706725cc, add_rate_limit_logs INFO [alembic.runtime.migration] Running upgrade f051706725cc -> d20049ed0af6, add_metadata_function INFO [alembic.runtime.migration] Running upgrade d20049ed0af6 -> 6a9f914f656c, change documentsegment and childchunk indexes INFO [alembic.runtime.migration] Running upgrade 6a9f914f656c -> d28f2004b072, add index for workflow_conversation_variables.conversation_id INFO [alembic.runtime.migration] Running upgrade d28f2004b072 -> 2adcbe1f5dfb, add WorkflowDraftVariable model INFO [alembic.runtime.migration] Running upgrade 2adcbe1f5dfb -> 4474872b0ee6, `workflow_draft_varaibles` add `node_execution_id` column, add an index for ` INFO [alembic.runtime.migration] Running upgrade 4474872b0ee6 -> 0ab65e1cc7fa, remove sequence_number from workflow_runs INFO [alembic.runtime.migration] Running upgrade 0ab65e1cc7fa -> 58eb7bdb93fe, add mcp server tool and app server INFO [alembic.runtime.migration] Running upgrade 58eb7bdb93fe -> 1c9ba48be8e4, add uuidv7 function in SQL INFO [alembic.runtime.migration] Running upgrade 1c9ba48be8e4 -> 71f5020c6470, tool oauth INFO [alembic.runtime.migration] Running upgrade 71f5020c6470 -> 1a83934ad6d1, update models INFO [alembic.runtime.migration] Running upgrade 1a83934ad6d1 -> 375fe79ead14, oauth_refresh_token INFO [alembic.runtime.migration] Running upgrade 375fe79ead14 -> 8bcc02c9bd07, add_tenant_plugin_autoupgrade_table INFO [alembic.runtime.migration] Running upgrade 8bcc02c9bd07 -> 532b3f888abf, manual dataset field update Database migration successful! [2025-08-22 09:23:27 +0000] [1] [INFO] Starting gunicorn 23.0.0 [2025-08-22 09:23:27 +0000] [1] [INFO] Listening at: http://0.0.0.0:5001 (1) [2025-08-22 09:23:27 +0000] [1] [INFO] Using worker: gevent [2025-08-22 09:23:27 +0000] [20] [INFO] Booting worker with pid: 20 2025-08-22 09:23:30.033 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 4 threads. 2025-08-22 09:32:41.423 ERROR [Dummy-1] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:42.467 ERROR [Dummy-2] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:44.510 ERROR [Dummy-3] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:50.347 ERROR [Dummy-4] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:51.385 ERROR [Dummy-5] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:53.444 ERROR [Dummy-6] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:32:57.479 ERROR [Dummy-7] [base.py:161] - Failed to parse response from plugin daemon to PluginDaemonBasicResponse [PluginListResponse], url: p1e4edb1e4/management/list Traceback (most recent call last): File "/app/api/core/plugin/impl/base.py", line 155, in _request_with_plugin_daemon_response rep = PluginDaemonBasicResponse[type](**json_response) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/api/.venv/lib/python3.12/site-packages/pydantic/main.py", line 253, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for PluginDaemonBasicResponse[PluginListResponse] data Input should be a valid dictionary or instance of PluginListResponse [type=model_type, input_value=[], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/model_type 2025-08-22 09:33:06.381 INFO [Dummy-8] [_client.py:1038] - HTTP Request: GET https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=shanjijian2fe08decb8c48c9fc81d342c0f2ec5390c39cde9848b2ccc3c442 "HTTP/1.1 200 OK" 2025-08-22 09:33:07.415 INFO [Dummy-9] [_client.py:1038] - HTTP Request: GET https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=shanjijian2fe08decb8c48c9fc81d342c0f2ec5390c39cde9848b2ccc3c442 "HTTP/1.1 200 OK" ^C
yindo closed this issue 2026-02-16 00:20:21 -05:00
Author
Owner

@onestardao commented on GitHub (Aug 23, 2025):

Looks like your error trace is not from the model itself but from the plugin daemon returning malformed JSON. That falls under ProblemMap No 8 (Debugging is a Black Box) — the system swallows the real root cause and just throws a parser failure. The fix is usually to surface the daemon’s raw response and validate it before dispatch. If you want the short checklist and example patch, just ask me for the link.

@onestardao commented on GitHub (Aug 23, 2025): Looks like your error trace is not from the model itself but from the plugin daemon returning malformed JSON. That falls under **ProblemMap No 8 (Debugging is a Black Box)** — the system swallows the real root cause and just throws a parser failure. The fix is usually to surface the daemon’s raw response and validate it before dispatch. If you want the short checklist and example patch, just ask me for the link.
Author
Owner

@kerberoszhan commented on GitHub (Aug 24, 2025):

i need the short checklist and example patch ,thanks ,please let me know how to fix it

@kerberoszhan commented on GitHub (Aug 24, 2025): i need the short checklist and example patch ,thanks ,please let me know how to fix it
Author
Owner

@onestardao commented on GitHub (Aug 25, 2025):

Ok I use my system and AI to answer you this , it's faster :)

===

here’s the quick fix kit you asked for. this is not a model bug. your daemon returns a shape that the server later feeds into Pydantic and it chokes. it maps to ProblemMap No.8: “Debugging is a black box”. the cure is a small semantic firewall in front of the daemon. no infra change, just a pre-dispatch validator/normalizer.

Short checklist

  1. curl the daemon endpoint that powers PluginListResponse (your log shows /management/list). Save the raw body and headers.

  2. Confirm Content-Type: application/json; charset=utf-8. No BOM, no trailing commas, no NaN/Infinity.

  3. Top level must be {"plugins": [...]}. If plugins is null, coerce to [].

  4. Each item must be a dict. Normalize fields:

    • type → lower string in {tool, agent, retriever}. Unknown → tool.
    • input_type can be a string or list. Coerce to list[str].
    • model_type missing → "none".
    • version stringify.
  5. Log the malformed body if validation fails, return 502 with a clear tag like daemon_malformed instead of passing it to Pydantic.

  6. After the shim passes, call the original handler.

Minimal patch (drop-in sanitizer)

# sit between http client → pydantic.parse
import json

ALLOWED_TYPES = {"tool", "agent", "retriever"}

def sanitize_plugins(resp_text: str):
    try:
        data = json.loads(resp_text)
    except Exception as e:
        return None, f"json parse failed: {e}"

    if not isinstance(data, dict):
        return None, "top-level not object"

    plugins = data.get("plugins")
    if plugins is None:
        plugins = []
    if not isinstance(plugins, list):
        plugins = [plugins]

    out = []
    for p in plugins:
        if not isinstance(p, dict):
            continue
        typ = str(p.get("type", "")).lower()
        if typ not in ALLOWED_TYPES:
            typ = "tool"
        inp = p.get("input_type") or []
        if isinstance(inp, str):
            inp = [inp]
        out.append({
            "id": p.get("id") or p.get("name") or "",
            "name": p.get("name", ""),
            "type": typ,
            "input_type": [str(x) for x in inp],
            "model_type": str(p.get("model_type") or "none"),
            "version": str(p.get("version") or ""),
        })
    return {"plugins": out}, None

Server side usage

raw = http_get(daemon_url).text
data, err = sanitize_plugins(raw)
if err:
    log.error(f"daemon_malformed: {err}; body={raw[:4000]}")
    return JSONResponse({"error":"daemon_malformed"}, status_code=502)
# now it is safe to feed into your Pydantic PluginListResponse
return PluginListResponse(**data)

why this works

  • you surface the real daemon error instead of a parser stack.
  • you normalize enum and optional fields so Pydantic stops failing.
  • you do not change infra. it is a small semantic firewall on the request path.

if you want the longer write-up with the full Problem Map and examples, I can share the doc. it is one page and includes more edge cases like empty arrays, stray BOM, and mixed int/str types.

@onestardao commented on GitHub (Aug 25, 2025): Ok I use my system and AI to answer you this , it's faster :) === here’s the quick fix kit you asked for. this is **not a model bug**. your daemon returns a shape that the server later feeds into Pydantic and it chokes. it maps to **ProblemMap No.8: “Debugging is a black box”**. the cure is a small **semantic firewall** in front of the daemon. no infra change, just a pre-dispatch validator/normalizer. **Short checklist** 1. `curl` the daemon endpoint that powers `PluginListResponse` (your log shows `/management/list`). Save the **raw body** and headers. 2. Confirm `Content-Type: application/json; charset=utf-8`. No BOM, no trailing commas, no `NaN/Infinity`. 3. Top level must be `{"plugins": [...]}`. If `plugins` is `null`, coerce to `[]`. 4. Each item must be a dict. Normalize fields: * `type` → lower string in `{tool, agent, retriever}`. Unknown → `tool`. * `input_type` can be a string or list. Coerce to `list[str]`. * `model_type` missing → `"none"`. * `version` stringify. 5. Log the malformed body if validation fails, return 502 with a clear tag like `daemon_malformed` instead of passing it to Pydantic. 6. After the shim passes, call the original handler. **Minimal patch (drop-in sanitizer)** ```python # sit between http client → pydantic.parse import json ALLOWED_TYPES = {"tool", "agent", "retriever"} def sanitize_plugins(resp_text: str): try: data = json.loads(resp_text) except Exception as e: return None, f"json parse failed: {e}" if not isinstance(data, dict): return None, "top-level not object" plugins = data.get("plugins") if plugins is None: plugins = [] if not isinstance(plugins, list): plugins = [plugins] out = [] for p in plugins: if not isinstance(p, dict): continue typ = str(p.get("type", "")).lower() if typ not in ALLOWED_TYPES: typ = "tool" inp = p.get("input_type") or [] if isinstance(inp, str): inp = [inp] out.append({ "id": p.get("id") or p.get("name") or "", "name": p.get("name", ""), "type": typ, "input_type": [str(x) for x in inp], "model_type": str(p.get("model_type") or "none"), "version": str(p.get("version") or ""), }) return {"plugins": out}, None ``` **Server side usage** ```python raw = http_get(daemon_url).text data, err = sanitize_plugins(raw) if err: log.error(f"daemon_malformed: {err}; body={raw[:4000]}") return JSONResponse({"error":"daemon_malformed"}, status_code=502) # now it is safe to feed into your Pydantic PluginListResponse return PluginListResponse(**data) ``` why this works * you surface the **real** daemon error instead of a parser stack. * you normalize enum and optional fields so Pydantic stops failing. * you do not change infra. it is a small semantic firewall on the request path. if you want the longer write-up with the full **Problem Map** and examples, I can share the doc. it is one page and includes more edge cases like empty arrays, stray BOM, and mixed int/str types.
Author
Owner

@kerberoszhan commented on GitHub (Aug 26, 2025):

your answer is no help

@kerberoszhan commented on GitHub (Aug 26, 2025): your answer is no help
Author
Owner

@onestardao commented on GitHub (Aug 26, 2025):

Because I haven't provide you my checklist, we have helped more than 100 devs to solve RAG issues, that's why I got 70 days 800 stars from a cold start. anyway. up to you :) I can leave without dropping a problem map

@onestardao commented on GitHub (Aug 26, 2025): Because I haven't provide you my checklist, we have helped more than 100 devs to solve RAG issues, that's why I got 70 days 800 stars from a cold start. anyway. up to you :) I can leave without dropping a problem map
Author
Owner

@kerberoszhan commented on GitHub (Sep 14, 2025):

issue has been fixed

@kerberoszhan commented on GitHub (Sep 14, 2025): issue has been fixed
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-plugin-daemon#177