Every time the pod is restarted, the plugin needs to be reinstalled #173

Open
opened 2026-02-16 00:20:20 -05:00 by yindo · 3 comments
Owner

Originally created by @Hwting on GitHub (Aug 19, 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, including closed ones.
  • [ x] I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [ x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • [ x] "Please do not modify this template :) and fill in all the required fields."

Versions

  1. dify-plugin-daemon 0.1.3
  2. dify-api Version 1.6.0

Describe the bug
dify-plugin-daemon Lack of correct persistent data results in the need to reinstall plugins after container restart
To Reproduce
Steps to reproduce the behavior:

  1. Helm deploys and accurately configures OSS bucket storage information
  2. Install a plugin randomly and configure information
  3. Delete the pod of dify_plugin_daemon

Expected behavior

  1. Using OSS can persist persistent storage: PLUGN_STORAGE-POAL-ROOT=/app/storage
  2. Restart the pod without losing data

Screenshots

Image Image

Additional context
https://github.com/langgenius/dify-plugin-daemon/issues/395
Every time the pod is restarted, the plugin needs to be reinstalled

Image

factory.go:28: [ERROR]PluginDaemonInternalServerError: obs: service returned error: Status=404 Not Found, Code=NoSuchKey, Message=The specified key does not exist., RequestId=00000198C6A837E513242AA4D8273113, Indicator=.
goroutine 808 [running]:
runtime/debug.Stack()
/usr/local/go/src/runtime/debug/stack.go:26 +0x5e
github.com/langgenius/dify-plugin-daemon/internal/types/exception.InternalServerError({0x29aa1c0, 0xc0003488c0})
/app/internal/types/exception/factory.go:27 +0x27
github.com/langgenius/dify-plugin-daemon/internal/server/controllers.GetAsset(0xc0008d2100)
/app/internal/server/controllers/plugins.go:21 +0xd0
github.com/gin-gonic/gin.(*Context).Next(0xc0008d2100)
/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(0xc0008d2100)
/app/internal/server/middleware.go:24 +0x95
github.com/gin-gonic/gin.(*Context).Next(0xc0008d2100)
/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(0xc0012126e0?)
/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(0xc0008d2100)
/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(0xc0008d2100)
/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(0xc000450680, 0xc0008d2100)
/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:633 +0x892
github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc000450680, {0x29d67d0, 0xc000dd00e0}, 0xc000dcc3c0)
/go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:589 +0x1b2
net/http.serverHandler.ServeHTTP({0xc000e10a20?}, {0x29d67d0?, 0xc000dd00e0?}, 0x6?)
/usr/local/go/src/net/http/server.go:3210 +0x8e
net/http.(*conn).serve(0xc0001ea870, {0x29db0b0, 0xc00057adb0})
/usr/local/go/src/net/http/server.go:2092 +0x5d0
created by net/http.(*Server).Serve in goroutine 56
/usr/local/go/src/net/http/server.go:3360 +0x485

Originally created by @Hwting on GitHub (Aug 19, 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 0.1.3 2. dify-api Version 1.6.0 **Describe the bug** dify-plugin-daemon Lack of correct persistent data results in the need to reinstall plugins after container restart **To Reproduce** Steps to reproduce the behavior: 1. Helm deploys and accurately configures OSS bucket storage information 2. Install a plugin randomly and configure information 3. Delete the pod of dify_plugin_daemon **Expected behavior** 1. Using OSS can persist persistent storage: PLUGN_STORAGE-POAL-ROOT=/app/storage 2. Restart the pod without losing data **Screenshots** <img width="542" height="68" alt="Image" src="https://github.com/user-attachments/assets/253f7dd1-d716-4a12-b142-6dc0acf2afaa" /> <img width="477" height="191" alt="Image" src="https://github.com/user-attachments/assets/b5e4545d-25ec-40c6-b6b7-73c943b980dd" /> **Additional context** https://github.com/langgenius/dify-plugin-daemon/issues/395 Every time the pod is restarted, the plugin needs to be reinstalled <img width="419" height="74" alt="Image" src="https://github.com/user-attachments/assets/3529a5d0-b08a-4095-b249-77d68a3f8496" /> factory.go:28: [ERROR]PluginDaemonInternalServerError: obs: service returned error: Status=404 Not Found, Code=NoSuchKey, Message=The specified key does not exist., RequestId=00000198C6A837E513242AA4D8273113, Indicator=. goroutine 808 [running]: runtime/debug.Stack() /usr/local/go/src/runtime/debug/stack.go:26 +0x5e github.com/langgenius/dify-plugin-daemon/internal/types/exception.InternalServerError({0x29aa1c0, 0xc0003488c0}) /app/internal/types/exception/factory.go:27 +0x27 github.com/langgenius/dify-plugin-daemon/internal/server/controllers.GetAsset(0xc0008d2100) /app/internal/server/controllers/plugins.go:21 +0xd0 github.com/gin-gonic/gin.(*Context).Next(0xc0008d2100) /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(0xc0008d2100) /app/internal/server/middleware.go:24 +0x95 github.com/gin-gonic/gin.(*Context).Next(0xc0008d2100) /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(0xc0012126e0?) /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(0xc0008d2100) /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(0xc0008d2100) /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(0xc000450680, 0xc0008d2100) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:633 +0x892 github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc000450680, {0x29d67d0, 0xc000dd00e0}, 0xc000dcc3c0) /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:589 +0x1b2 net/http.serverHandler.ServeHTTP({0xc000e10a20?}, {0x29d67d0?, 0xc000dd00e0?}, 0x6?) /usr/local/go/src/net/http/server.go:3210 +0x8e net/http.(*conn).serve(0xc0001ea870, {0x29db0b0, 0xc00057adb0}) /usr/local/go/src/net/http/server.go:2092 +0x5d0 created by net/http.(*Server).Serve in goroutine 56 /usr/local/go/src/net/http/server.go:3360 +0x485
Author
Owner

@caolicaoli commented on GitHub (Sep 24, 2025):

try to use same persistent pvc for all plugin pod....

@caolicaoli commented on GitHub (Sep 24, 2025): try to use same persistent pvc for all plugin pod....
Author
Owner

@Hwting commented on GitHub (Sep 24, 2025):

try to use same persistent pvc for all plugin pod....

This is how it was resolved

@Hwting commented on GitHub (Sep 24, 2025): > try to use same persistent pvc for all plugin pod.... This is how it was resolved
Author
Owner

@hmi12 commented on GitHub (Dec 9, 2025):

We only have one plguin pod. The pod has mounted a dedicated PVC, but the plugin cannot be found after restarting the pod.

Error:

2025/12/09 02:06:38 factory.go:28: [ERROR]PluginDaemonInternalServerError: no available node, plugin not found
goroutine 188 [running]:
runtime/debug.Stack()
/usr/local/go/src/runtime/debug/stack.go:26 +0x5e
github.com/langgenius/dify-plugin-daemon/internal/types/exception.InternalServerError({0x299d400, 0xc00048d760})
/app/internal/types/exception/factory.go:27 +0x27

@hmi12 commented on GitHub (Dec 9, 2025): We only have one plguin pod. The pod has mounted a dedicated PVC, but the plugin cannot be found after restarting the pod. Error: 2025/12/09 02:06:38 factory.go:28: [ERROR]PluginDaemonInternalServerError: no available node, plugin not found goroutine 188 [running]: runtime/debug.Stack() /usr/local/go/src/runtime/debug/stack.go:26 +0x5e github.com/langgenius/dify-plugin-daemon/internal/types/exception.InternalServerError({0x299d400, 0xc00048d760}) /app/internal/types/exception/factory.go:27 +0x27
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-plugin-daemon#173