mirror of
https://github.com/langgenius/dify-plugin-daemon.git
synced 2026-07-21 17:25:23 -04:00
No Branch/Tag Specified
main
build/fix-serverless-runtime-error-propagation
gh-pages
build/test-document2
build/test-document
build/onboarding-ui
build/slim-extract
codex/depot-builds
codex/mac-runner-benchmark
feat/storage-path-prefix
feat/multi-db-user
feat/slim-action
deploy/dev
feat/dify-cli
feat/add-e2e
build/pg-bouncer
codex/add-multimodal-rerank-and-embedding-apis
refactor/local-runtime
build/multimodal-embeddings
codex/refactor-routine.submit-label-handling
codex/refactor-service-layer-based-on-provided-plan
feat/trigger-response
feat/trigger
build/trigger
deploy/trigger-dev
codex/remove-claude-code-reviewer-from-github-ci
codex/add-manifest-check-to-upload-endpoint
feat/no-root-dockerfile
fix/json-schema
fix/blocking-anthorized-langgenius
454-bump-cli-template
build/datasource
feat/datasource
bump-cloud-kit
feat/rag-tag
fix/change-session-not-found-to-400
feat/plugin-readme
add-claude-github-actions-1756274550417
docs/comprehensive-development-documentation
chore/remove-json-schema-validation-error
71cef04
fix/missing-parameter-type
fix/sessions-log
fix/template.env
bump/go-git
build/oauth
feat/oauth-refresh-token
feat/plugin-oauth
feat/tool-oauth-cli
build/plugin-oauth
feat/readme-i18n
fix/memory-leak
feat/icon-dark
feat/default-icon
plugin_launch_concurent
feat/collect-active-requests
feat/dark-icon
feat/support-structured-llm-output
feat/dynamic-selector
fix/reduce-logs
feat/decode-plugin-package
feat/db-extras
fix/backwards-invocation-overflow
feat/length-prefixed-chunking
fix/http-request-reader-header
chore/unify-configurations
fix/hardcoded-serverless-runtime-timeout
fix/cmd
fix/signature
refactor/implement-gen-routes
fix/redis-lock
refactor/codegen
feat/add-authorized-category
chore/style
feat/run-plugin-cli
reduce/run-once
feat/reinstall-serverless-runtime
feat/support-setup-process
fix/apply-stdio-buffer-size
chore/add-warning-messages-to-installed-bucket
feat/repo
enhance/stdio
feat/make-buffer-size-configurable
fix/moderation-init
fix/only-validate-profile-on-quick-mode
feat/support-quick-init-plugins
refactor/oauth-parameters
feat/oauth
refactor/simplify-plugin-invocation
test/integration-test-for-plugins
fix/backwards-compatible-to-llm-result-chunk
feat/auto-scale
enhance/reduce-ci-tests
fix/cli-ci
enhance/removes-llm-result-prompt-messages
fix/disable-benchmark-logs
benchmark/local-runtime
chore/remove-useless-benchmark
feat/benchmark
feat/fetch-app-info
fix/windows-remap-assets
fix/skip-hidden-file
feat/stream-tool-blob-message
fix/path-travel
feat/template-add-ci
enhance/version-compare
feat/sign-apple-os-cli
feat/support-minimal-dify-version-required
refactor/stdip
feat/add-serverless-connector-launching-timeout
fix/remove-prompt_messages-from-llm-result-chunk
feat/standardize-plugin-sdk-versions
chore/update-docs-and-refine-wording
update/readme-cli
fix/infinity-environment-setup
fix/cbor-unmarshaling
fix/use-aws-iam-baseendpoint
fix/lost-query-params-in-endpoint
fix/tiktoken
cohre/update-readme
fix/redis-tests
fix/friendly-identity
fix/marshal-any-map
chore/upgrade-ants
fix/graceful-precompile
enhance/tiktoken
feat/graceful-shutdown
fix/close-serverless-response
fix/correct-cli-guide
fix/plugin-active-log
fix/remove-proxy-args-from-uv
fix/endpoint-hook-url
fix/ci-credentials
feat/disable-gevent
fix/add-gcc
fix/hardcoded-endpoint-timeout
fix/bump-cli-sdk-version
fix/deadloop-when-redis-disconnect
fix/enhence/speed-up-environment-setup
enhance/introduce-uv
fix/change-default-db
fix/deadlock
readme
chore/env.example
feat/add-action-in-url
fix/add-more-pip-args
fix/optimize-local-heartbeat
optimize/db-init
fix/optimize-internal-server-error
fix/increase-default-plugin-max-execution-timeout
fix/force-patch-older-version
enhance/increase-installing-process
LICENSE
fix/set-user-id-to-unrequired
fix/max-launching-concurrent
improve/error-handing-in-serverless
refactor/json-unmarshaler-enhancement
fix/add-pip-mirror-url
enhance/serverless-connector
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.3.0b1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
0.0.1-beta.23
0.0.1-beta.22
0.0.1-beta.21
0.0.1-beta.20
0.0.1-beta.19
0.0.1-beta.18
0.0.1-beta.17
0.0.1-beta.16
0.0.1-beta.15
0.0.1-beta.14
0.0.1-beta.13
0.0.1-beta.12
0.0.1-beta.11
0.0.1-beta.10
0.0.1-beta.9
0.0.1-beta.8
0.0.1-beta.7
0.0.1-beta.6
0.0.1-beta.5
0.0.1-beta.4
0.0.1-beta.3
0.0.1-beta.2
0.0.1-beta.1
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: langgenius/dify-plugin-daemon#217
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @shuxnhs on GitHub (Dec 16, 2025).
Self Checks
To make sure we get to you in time, please check the following :)
Versions
Describe the bug
after upgrade plugin-daemon to version 0.4.1, my plugin can not start
`
2025/12/16 07:33:22 logger.go:22: [ERROR]local runtime start failed: test/test:0.0.7@xxxxxx, error: plugin failed to start:
[type=missing, input_value={}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
icon
Field required [type=missing, input_value={}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
label
Field required [type=missing, input_value={}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
created_at
Field required [type=missing, input_value={}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
resource
Field required [type=missing, input_value={}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
plugins
Field required [type=missing, input_value={}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
meta
Field required [type=missing, input_value={}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing`
the manifest.yaml is exist in /app/storage/cwd/xxxxxxx
@dosubot[bot] commented on GitHub (Dec 16, 2025):
Your plugin is failing to start because dify-plugin-daemon v0.4.1 now strictly requires several fields in manifest.yaml that may have been optional or missing in previous versions. The required fields are:
icon(string, max 128 chars),label(I18nObject),description(I18nObject),created_at(timestamp),resource(object, must include at leastmemory),plugins(object), andmeta(object, must includeversion,arch, andrunner). If any of these are missing or incorrectly formatted, you'll get Pydantic validation errors and the plugin won't start.Here's a minimal example of what your manifest.yaml should include for v0.4.1 compatibility:
Make sure to fill in the actual values and add any additional required subfields for
pluginsandmetaas needed. For more details on the schema and validation logic, see the PluginDeclaration struct and validation rules.Updating your manifest.yaml to include all these required fields should resolve the startup failure.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@shuxnhs commented on GitHub (Dec 16, 2025):
@dosu.this is my manifest.yaml
version: 0.0.7
type: plugin
author: "test"
name: "test"
description:
en_US: xxxxxxx
zh_Hans: xxxxxx
label:
en_US: "xxxxx"
created_at: "2025-09-02T19:53:50.29298939-04:00"
icon: icon_s_en.svg
resource:
memory: 268435456
permission:
model:
enabled: false
plugins:
models:
- provider/xxx.yaml
meta:
version: 0.0.1
arch:
- amd64
- arm64
runner:
language: python
version: "3.12"
entrypoint: main
@shuxnhs commented on GitHub (Dec 16, 2025):
@dosu i run 'python -m main' on my machine, it run success
{"event": "log", "data": {"level": "INFO", "message": "Installed model: xxxx", "timestamp": 1765874328.916999}}
{"event":"heartbeat","session_id":null,"data":{}}
{"event":"heartbeat","session_id":null,"data":{}}
@dosubot[bot] commented on GitHub (Dec 16, 2025):
Running your plugin with
python -m mainonly checks if your Python code works—it doesn't validate your manifest.yaml. dify-plugin-daemon v0.4.1 enforces strict manifest.yaml schema validation before starting the plugin, which is why you see errors about missing fields likeicon,label,created_at,resource,plugins, andmetaeven though your code runs locally.Looking at your manifest.yaml, here are some things to check and fix:
authorandnamefields must be lowercase, alphanumeric, and can include underscores or dashes (e.g.,author: your_github_id,name: your_plugin_name)."test"is fine if it matches the regex, but make sure it's lowercase.iconfield should be a string (max 128 chars) and ideally a URL or a valid path to an icon file in your package.created_atfield must be in RFC3339 format (e.g.,"2025-09-02T19:53:50Z").resourcefield must includememory(int, required). If you usepermission.storage.size, it must be at least 1024.pluginsfield must include at least one of:tools,models,endpoints,agent_strategies,datasources, ortriggers, each as a list of strings (paths to yaml files that exist in your package).metafield must includeversion(version format),arch(list, e.g.,[amd64, arm64]), andrunner(withlanguage,version,entrypoint).Here's a corrected example based on your manifest:
Make sure all referenced files (like
icon_s_en.svgandprovider/xxx.yaml) exist in your package. If you still get errors, check the error message for the specific field and format. For more details, see the schema definition and the validation logic.If you update your manifest and still see errors, please share the new error message for further help.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@shuxnhs commented on GitHub (Dec 16, 2025):
@dosu
i use your corrected example, it also start failed
@dosubot[bot] commented on GitHub (Dec 16, 2025):
Your manifest.yaml content looks correct, so the persistent "Field required" errors almost certainly mean the daemon is not reading or parsing the file you expect. This usually happens if the plugin daemon is looking in the wrong directory, the file is empty/corrupted, or there’s a mismatch in Docker volume mounts or environment variables.
Here’s what to check next:
Make sure your Docker/container volume mounts and environment variables are aligned. The daemon expects to find plugins under a path like
/app/storage/cwd/<plugin-folder>/manifest.yamlby default. Double-check that PLUGIN_STORAGE_LOCAL_ROOT, PLUGIN_WORKING_PATH, and PLUGIN_INSTALLED_PATH are set correctly and that your plugin folder is actually mounted inside the container at the expected location. If these are misaligned, the daemon will read an empty or wrong manifest file, causing all fields to be "missing" even if the file exists on disk (source).Confirm the manifest.yaml is not empty or corrupted inside the running container. Enter the container and run
cat /app/storage/cwd/<your-plugin-folder>/manifest.yamlto verify the file content matches what you expect.Check file permissions: the manifest.yaml must be readable by the user running the daemon process.
Run a YAML linter on your manifest.yaml to catch any invisible formatting or encoding issues (like tabs, BOM, or non-UTF8 encoding).
If you have a working plugin from the official marketplace, try copying its manifest.yaml into your plugin folder as a test. If it still fails, the issue is almost certainly with the environment or path configuration, not the manifest content.
If you share your relevant environment variable values and Docker compose volume mounts, I can help you spot any misconfigurations. This kind of error is almost always a path or mounting issue, not a manifest.yaml content problem (source).
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@shuxnhs commented on GitHub (Dec 16, 2025):
@dosu other plugins can run success, only this one start failed, i check manifest.yaml
@dosubot[bot] commented on GitHub (Dec 16, 2025):
Since other plugins work and only this one fails—with the error showing all required fields as missing—it's very likely the manifest.yaml for your 'test' plugin is malformed, truncated, or has encoding issues, even if it looks fine in your editor. The daemon treats any malformed, empty, or non-UTF-8 manifest as an empty object, which triggers these "Field required" errors for every required field (source).
Here’s what to do next:
file manifest.yamlandcat -A manifest.yamlinside the failing plugin directory and compare the output to a working plugin. This will reveal encoding issues, BOMs, or invisible characters.yamllint) on the failing manifest.yaml to catch syntax or formatting errors.If the issue persists after these checks, try recreating the manifest.yaml from scratch in a plain text editor set to UTF-8 (no BOM). The file size difference (442 bytes vs 1.1K) also suggests your manifest might be truncated or missing content compared to the working one.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@shuxnhs commented on GitHub (Dec 16, 2025):
if the manifest.yaml required fields is missing, it will failed to package plugin ,like: [ERROR]failed to package plugin: Key: 'PluginDeclaration.PluginDeclarationWithoutAdvancedFields.Label.xxxxx' Error:Field validation for 'xxxx' failed on the 'required' tag , but i can package the plugin success@dosu
@Yeuoly commented on GitHub (Dec 17, 2025):
I'd like to have your manifest.yaml and see where the problem is, would you mind provide it?