After upgrading to 1.11.4, the following error occurred during runtime: req_id: a6bcdbd5f2 PluginDaemonInternalServerError: no available node, plugin runtime not found #21861

Closed
opened 2026-02-21 20:14:37 -05:00 by yindo · 1 comment
Owner

Originally created by @walmartlistingcreate on GitHub (Jan 23, 2026).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.11.4

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

An error occurred when running on the LLM node.

Image

Error logs were discovered during inspection of the plugin_daemon container.

2026/01/23 07:31:40 factory.go:28: [ERROR]PluginDaemonInternalServerError: no available node, plugin runtime not found

goroutine 9029 [running]:

runtime/debug.Stack()

	/usr/local/go/src/runtime/debug/stack.go:26 +0x5e

github.com/langgenius/dify-plugin-daemon/internal/types/exception.InternalServerError({0x2b1fd60, 0xc00ab653b0})
	/app/internal/types/exception/factory.go:27 +0x27

github.com/langgenius/dify-plugin-daemon/internal/server.(*App).redirectPluginInvokeByPluginIdentifier(0xc0005b4fc0, 0xc000a83100, {0xc00a3ccde0?, 0xcd7bf4?}, {0x2b1fd60, 0x4058b10})

	/app/internal/server/middleware.go:132 +0x105

github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.(*App).RedirectPluginInvoke.func3(0xc000a83100)

	/app/internal/server/middleware.go:106 +0x8a

github.com/gin-gonic/gin.(*Context).Next(0xc000a83100)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b

github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.(*App).FetchPluginInstallation.func2(0xc000a83100)

	/app/internal/server/middleware.go:78 +0x235

github.com/gin-gonic/gin.(*Context).Next(0xc000a83100)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b

github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.CollectActiveDispatchRequests.func1(0x27b0e3d?)

	/app/internal/server/controllers/health_check.go:28 +0x25

github.com/gin-gonic/gin.(*Context).Next(0xc000a83100)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b

github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginGroup.CheckingKey.func1(0xc000a83100)

	/app/internal/server/middleware.go:26 +0x95

github.com/gin-gonic/gin.(*Context).Next(0xc000a83100)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b

github.com/langgenius/dify-plugin-daemon/internal/server.(*App).server.CollectActiveRequests.func3(0x0?)

	/app/internal/server/controllers/health_check.go:20 +0x25

github.com/gin-gonic/gin.(*Context).Next(...)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185

github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc000a83100)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/recovery.go:102 +0x6f

github.com/gin-gonic/gin.(*Context).Next(...)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185

github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc000a83100)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/logger.go:249 +0xe5

github.com/gin-gonic/gin.(*Context).Next(...)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185

github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0004b29c0, 0xc000a83100)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:633 +0x94b

github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0004b29c0, {0x2b4fc30, 0xc00aca23c0}, 0xc009866a00)

	/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:589 +0x1ad

net/http.serverHandler.ServeHTTP({0x2b421c8?}, {0x2b4fc30?, 0xc00aca23c0?}, 0x6?)

	/usr/local/go/src/net/http/server.go:3340 +0x8e

net/http.(*conn).serve(0xc0098307e0, {0x2b542b8, 0xc0007e9e90})

	/usr/local/go/src/net/http/server.go:2109 +0x665

created by net/http.(*Server).Serve in goroutine 112

	/usr/local/go/src/net/http/server.go:3493 +0x485

✔️ Expected Behavior

Operating normally

Actual Behavior

Image
Originally created by @walmartlistingcreate on GitHub (Jan 23, 2026). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.11.4 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce An error occurred when running on the LLM node. <img width="364" height="330" alt="Image" src="https://github.com/user-attachments/assets/35fdcb82-3d96-4c23-9ace-ade3bcb2e9b4" /> Error logs were discovered during inspection of the plugin_daemon container. ``` 2026/01/23 07:31:40 factory.go:28: [ERROR]PluginDaemonInternalServerError: no available node, plugin runtime not found goroutine 9029 [running]: runtime/debug.Stack() /usr/local/go/src/runtime/debug/stack.go:26 +0x5e github.com/langgenius/dify-plugin-daemon/internal/types/exception.InternalServerError({0x2b1fd60, 0xc00ab653b0}) /app/internal/types/exception/factory.go:27 +0x27 github.com/langgenius/dify-plugin-daemon/internal/server.(*App).redirectPluginInvokeByPluginIdentifier(0xc0005b4fc0, 0xc000a83100, {0xc00a3ccde0?, 0xcd7bf4?}, {0x2b1fd60, 0x4058b10}) /app/internal/server/middleware.go:132 +0x105 github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.(*App).RedirectPluginInvoke.func3(0xc000a83100) /app/internal/server/middleware.go:106 +0x8a github.com/gin-gonic/gin.(*Context).Next(0xc000a83100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.(*App).FetchPluginInstallation.func2(0xc000a83100) /app/internal/server/middleware.go:78 +0x235 github.com/gin-gonic/gin.(*Context).Next(0xc000a83100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.CollectActiveDispatchRequests.func1(0x27b0e3d?) /app/internal/server/controllers/health_check.go:28 +0x25 github.com/gin-gonic/gin.(*Context).Next(0xc000a83100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginGroup.CheckingKey.func1(0xc000a83100) /app/internal/server/middleware.go:26 +0x95 github.com/gin-gonic/gin.(*Context).Next(0xc000a83100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b github.com/langgenius/dify-plugin-daemon/internal/server.(*App).server.CollectActiveRequests.func3(0x0?) /app/internal/server/controllers/health_check.go:20 +0x25 github.com/gin-gonic/gin.(*Context).Next(...) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc000a83100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/recovery.go:102 +0x6f github.com/gin-gonic/gin.(*Context).Next(...) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc000a83100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/logger.go:249 +0xe5 github.com/gin-gonic/gin.(*Context).Next(...) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0004b29c0, 0xc000a83100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:633 +0x94b github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0004b29c0, {0x2b4fc30, 0xc00aca23c0}, 0xc009866a00) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:589 +0x1ad net/http.serverHandler.ServeHTTP({0x2b421c8?}, {0x2b4fc30?, 0xc00aca23c0?}, 0x6?) /usr/local/go/src/net/http/server.go:3340 +0x8e net/http.(*conn).serve(0xc0098307e0, {0x2b542b8, 0xc0007e9e90}) /usr/local/go/src/net/http/server.go:2109 +0x665 created by net/http.(*Server).Serve in goroutine 112 /usr/local/go/src/net/http/server.go:3493 +0x485 ``` ### ✔️ Expected Behavior Operating normally ### ❌ Actual Behavior <img width="364" height="330" alt="Image" src="https://github.com/user-attachments/assets/74580221-9fa4-4504-b364-82e76ac04f3f" />
yindo added the 🐞 bug label 2026-02-21 20:14:37 -05:00
yindo closed this issue 2026-02-21 20:14:37 -05:00
Author
Owner

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

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

This error means the plugin daemon can't find or start the required plugin runtime (like Ollama) for model credential validation. The most common causes are: the plugin_daemon container isn't running or healthy, the plugin runtime isn't installed or registered, or Docker networking is blocking access between containers. It can also happen if the plugin files are missing from /app/storage/plugin/ in the plugin_daemon container but the plugin is still listed in the database, causing a mismatch between the database and filesystem state [source].

Here's a step-by-step checklist to resolve it:

  1. Make sure the plugin_daemon container is running and healthy. Restart it if needed.
  2. Confirm the plugin runtime (e.g., Ollama) is running and accessible from Docker. For Ollama, use OLLAMA_HOST=0.0.0.0 ollama serve.
  3. In Dify, set the plugin base URL to http://host.docker.internal:11434 (Mac/Windows) or your host's LAN IP (Linux), and ensure port 11434 is open.
  4. Check Docker Compose: the plugin_daemon should use the correct image version matching your Dify version and be on the same network as Dify and the plugin runtime.
  5. If you migrated Docker volumes, use tar (not zip) to avoid breaking Python virtualenv symlinks in plugin_daemon.
  6. Attach to the plugin_daemon container and check /app/storage/plugin/ for the plugin files. If missing, check the plugin_installations table in your database for orphaned records and delete them, then reinstall the plugin via the Dify UI.
  7. Set PLUGIN_WORKING_PATH=/app/cwd in your .env file.
  8. If you see timeouts, increase PYTHON_ENV_INIT_TIMEOUT and PLUGIN_MAX_EXECUTION_TIMEOUT in the plugin_daemon environment.
  9. Restart all related containers (dify, plugin_daemon, ssrf_proxy, plugin runtime) after any config changes.
  10. If you are offline, set up a local PyPI mirror and set PIP_MIRROR_URL in your .env so plugin_daemon can install dependencies.

If the error persists after reinstalling the plugin, check plugin_daemon logs for panics or repeated environment initialization failures, and verify database consistency for plugin credentials, especially if you migrated data [source].

This error is backend-related and not caused by UI form input errors. Matching the plugin_daemon version to your Dify version is also important to avoid compatibility issues [source].

To reply, just mention @dosu.


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

Chat with Dosu Open in Cursor Join Discord Share on X

@dosubot[bot] commented on GitHub (Jan 23, 2026): <!-- Greeting --> Hi @walmartlistingcreate! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify team. <!-- Answer --> This error means the plugin daemon can't find or start the required plugin runtime (like Ollama) for model credential validation. The most common causes are: the plugin_daemon container isn't running or healthy, the plugin runtime isn't installed or registered, or Docker networking is blocking access between containers. It can also happen if the plugin files are missing from `/app/storage/plugin/` in the plugin_daemon container but the plugin is still listed in the database, causing a mismatch between the database and filesystem state [[source]](https://github.com/langgenius/dify/issues/31303). Here's a step-by-step checklist to resolve it: 1. Make sure the plugin_daemon container is running and healthy. Restart it if needed. 2. Confirm the plugin runtime (e.g., Ollama) is running and accessible from Docker. For Ollama, use `OLLAMA_HOST=0.0.0.0 ollama serve`. 3. In Dify, set the plugin base URL to `http://host.docker.internal:11434` (Mac/Windows) or your host's LAN IP (Linux), and ensure port 11434 is open. 4. Check Docker Compose: the plugin_daemon should use the correct image version matching your Dify version and be on the same network as Dify and the plugin runtime. 5. If you migrated Docker volumes, use `tar` (not `zip`) to avoid breaking Python virtualenv symlinks in plugin_daemon. 6. Attach to the plugin_daemon container and check `/app/storage/plugin/` for the plugin files. If missing, check the `plugin_installations` table in your database for orphaned records and delete them, then reinstall the plugin via the Dify UI. 7. Set `PLUGIN_WORKING_PATH=/app/cwd` in your `.env` file. 8. If you see timeouts, increase `PYTHON_ENV_INIT_TIMEOUT` and `PLUGIN_MAX_EXECUTION_TIMEOUT` in the plugin_daemon environment. 9. Restart all related containers (dify, plugin_daemon, ssrf_proxy, plugin runtime) after any config changes. 10. If you are offline, set up a local PyPI mirror and set `PIP_MIRROR_URL` in your `.env` so plugin_daemon can install dependencies. If the error persists after reinstalling the plugin, check plugin_daemon logs for panics or repeated environment initialization failures, and verify database consistency for plugin credentials, especially if you migrated data [[source]](https://github.com/langgenius/dify/issues/31303). This error is backend-related and not caused by UI form input errors. Matching the plugin_daemon version to your Dify version is also important to avoid compatibility issues [[source]](https://github.com/langgenius/dify/issues/20298). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/0c10757e-cbb6-4918-81cd-b4c8f2549264?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/0c10757e-cbb6-4918-81cd-b4c8f2549264?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/0c10757e-cbb6-4918-81cd-b4c8f2549264?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/0c10757e-cbb6-4918-81cd-b4c8f2549264?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/0c10757e-cbb6-4918-81cd-b4c8f2549264?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/0c10757e-cbb6-4918-81cd-b4c8f2549264?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/0c10757e-cbb6-4918-81cd-b4c8f2549264?feedback_type=other)</sup> [![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Open in Cursor](https://dosu.dev/dosu-in-cursor.svg)](https://cursor.com/link/prompt?text=This%20error%20means%20the%20plugin%20daemon%20can%27t%20find%20or%20start%20the%20required%20plugin%20runtime%20%28like%20Ollama%29%20for%20model%20credential%20validation.%20The%20most%20common%20causes%20are%3A%20the%20plugin_daemon%20container%20isn%27t%20running%20or%20healthy%2C%20the%20plugin%20runtime%20isn%27t%20installed%20or%20registered%2C%20or%20Docker%20networking%20is%20blocking%20access%20between%20containers.%20It%20can%20also%20happen%20if%20the%20plugin%20files%20are%20missing%20from%20%60/app/storage/plugin/%60%20in%20the%20plugin_daemon%20container%20but%20the%20plugin%20is%20still%20listed%20in%20the%20database%2C%20causing%20a%20mismatch%20between%20the%20database%20and%20filesystem%20state%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/31303%29.%0A%0AHere%27s%20a%20step-by-step%20checklist%20to%20resolve%20it%3A%0A%0A1.%20Make%20sure%20the%20plugin_daemon%20container%20is%20running%20and%20healthy.%20Restart%20it%20if%20needed.%0A2.%20Confirm%20the%20plugin%20runtime%20%28e.g.%2C%20Ollama%29%20is%20running%20and%20accessible%20from%20Docker.%20For%20Ollama%2C%20use%20%60OLLAMA_HOST%3D0.0.0.0%20ollama%20serve%60.%0A3.%20In%20Dify%2C%20set%20the%20plugin%20base%20URL%20to%20%60http%3A//host.docker.internal%3A11434%60%20%28Mac/Windows%29%20or%20your%20host%27s%20LAN%20IP%20%28Linux%29%2C%20and%20ensure%20port%2011434%20is%20open.%0A4.%20Check%20Docker%20Compose%3A%20the%20plugin_daemon%20should%20use%20the%20correct%20image%20version%20matching%20your%20Dify%20version%20and%20be%20on%20the%20same%20network%20as%20Dify%20and%20the%20plugin%20runtime.%0A5.%20If%20you%20migrated%20Docker%20volumes%2C%20use%20%60tar%60%20%28not%20%60zip%60%29%20to%20avoid%20breaking%20Python%20virtualenv%20symlinks%20in%20plugin_daemon.%0A6.%20Attach%20to%20the%20plugin_daemon%20container%20and%20check%20%60/app/storage/plugin/%60%20for%20the%20plugin%20files.%20If%20missing%2C%20check%20the%20%60plugin_installations%60%20table%20in%20your%20database%20for%20orphaned%20records%20and%20delete%20them%2C%20then%20reinstall%20the%20plugin%20via%20the%20Dify%20UI.%0A7.%20Set%20%60PLUGIN_WORKING_PATH%3D/app/cwd%60%20in%20your%20%60.env%60%20file.%0A8.%20If%20you%20see%20timeouts%2C%20increase%20%60PYTHON_ENV_INIT_TIMEOUT%60%20and%20%60PLUGIN_MAX_EXECUTION_TIMEOUT%60%20in%20the%20plugin_daemon%20environment.%0A9.%20Restart%20all%20related%20containers%20%28dify%2C%20plugin_daemon%2C%20ssrf_proxy%2C%20plugin%20runtime%29%20after%20any%20config%20changes.%0A10.%20If%20you%20are%20offline%2C%20set%20up%20a%20local%20PyPI%20mirror%20and%20set%20%60PIP_MIRROR_URL%60%20in%20your%20%60.env%60%20so%20plugin_daemon%20can%20install%20dependencies.%0A%0AIf%20the%20error%20persists%20after%20reinstalling%20the%20plugin%2C%20check%20plugin_daemon%20logs%20for%20panics%20or%20repeated%20environment%20initialization%20failures%2C%20and%20verify%20database%20consistency%20for%20plugin%20credentials%2C%20especially%20if%20you%20migrated%20data%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/31303%29.%0A%0AThis%20error%20is%20backend-related%20and%20not%20caused%20by%20UI%20form%20input%20errors.%20Matching%20the%20plugin_daemon%20version%20to%20your%20Dify%20version%20is%20also%20important%20to%20avoid%20compatibility%20issues%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/20298%29.)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/31441)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#21861