You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@IAMJOYBO Hello there! I'm here to help you with any bugs or questions you have while waiting for a human maintainer. Let me know how I can assist you!
To resolve the "PluginDaemonInternalServerError: no available node, plugin not found" error in Dify version 1.0.1 on a self-hosted Docker setup, you can try the following solutions:
Increase the Python environment initialization timeout by adding this line to your docker-compose.yaml:
PYTHON_ENV_INIT_TIMEOUT: 320
If the above doesn't work, perform these steps:
Uninstall and then reinstall the plugin to address any synchronization issues.
Clear plugin data from the database by executing these SQL commands in the dify_plugin database:
deletefrom plugin_installations where plugin_unique_identifier is not null;
deletefrom plugin_declarations where plugin_unique_identifier is not null;
deletefrom ai_model_installations where plugin_unique_identifier is not null;
deletefrom plugins where plugin_unique_identifier is not null;
Clear plugin directories from:
/app/storage/cwd/plugins/plugin
/app/storage/cwd/plugins/plugin-working
/app/storage/cwd/plugins/persistence
/app/storage/cwd/plugins/plugin-root
Restart the plugin daemon service.
Reinstall the plugins from the marketplace.
This error typically occurs when plugin installation fails because Python dependencies cannot be installed within the default 120-second timeout period. If you encounter this error when making a POST request to a specific endpoint, ensure that the plugin is correctly installed and configured. Additionally, addressing any database synchronization issues by uninstalling and reinstalling the plugin can help resolve the error [1][2][3][4].
Self Checks
Dify version
v1.0.1
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
plugin_daemon-1 | [GIN] 2025/03/14 - 16:59:32 | 200 | 1.006334ms | 172.18.0.8 | GET "/plugin/9e2953d2-161a-4430-8b32-db1f6e72da5a/management/models?page=1&page_size=256" plugin_daemon-1 | 2025/03/14 16:59:32 factory.go:28: [ERROR]PluginDaemonInternalServerError: no available node, plugin not found plugin_daemon-1 | goroutine 567 [running]: plugin_daemon-1 | runtime/debug.Stack() plugin_daemon-1 | /usr/local/go/src/runtime/debug/stack.go:24 +0x5e plugin_daemon-1 | github.com/langgenius/dify-plugin-daemon/internal/types/exception.InternalServerError({0x18112a0, 0xc000c328c0}) plugin_daemon-1 | /app/internal/types/exception/factory.go:27 +0x27 plugin_daemon-1 | github.com/langgenius/dify-plugin-daemon/internal/server.(*App).redirectPluginInvokeByPluginIdentifier(0xc00032a0d8, 0xc0006d8100, {0xc000646460?, 0xe9d6ff?}, {0x18112a0, 0xc000c32870}) plugin_daemon-1 | /app/internal/server/middleware.go:120 +0xef plugin_daemon-1 | github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.(*App).RedirectPluginInvoke.func2(0xc0006d8100) plugin_daemon-1 | /app/internal/server/middleware.go:94 +0x95 plugin_daemon-1 | github.com/gin-gonic/gin.(*Context).Next(0xc0006d8100) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b plugin_daemon-1 | github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginDispatchGroup.(*App).FetchPluginInstallation.func1(0xc0006d8100) plugin_daemon-1 | /app/internal/server/middleware.go:66 +0x2f2 plugin_daemon-1 | github.com/gin-gonic/gin.(*Context).Next(0xc0006d8100) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 +0x2b plugin_daemon-1 | github.com/langgenius/dify-plugin-daemon/internal/server.(*App).pluginGroup.CheckingKey.func1(0xc0006d8100) plugin_daemon-1 | /app/internal/server/middleware.go:24 +0x95 plugin_daemon-1 | github.com/gin-gonic/gin.(*Context).Next(...) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 plugin_daemon-1 | github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc0006d8100) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/recovery.go:102 +0x7a plugin_daemon-1 | github.com/gin-gonic/gin.(*Context).Next(...) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 plugin_daemon-1 | github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc0006d8100) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/logger.go:249 +0xe5 plugin_daemon-1 | github.com/gin-gonic/gin.(*Context).Next(...) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/context.go:185 plugin_daemon-1 | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc00063a340, 0xc0006d8100) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:633 +0x892 plugin_daemon-1 | github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc00063a340, {0x1823720, 0xc000950000}, 0xc000938240) plugin_daemon-1 | /go/pkg/mod/github.com/gin-gonic/gin@v1.10.0/gin.go:589 +0x1b2 plugin_daemon-1 | net/http.serverHandler.ServeHTTP({0x18194c8?}, {0x1823720?, 0xc000950000?}, 0x6?) plugin_daemon-1 | /usr/local/go/src/net/http/server.go:3142 +0x8e plugin_daemon-1 | net/http.(*conn).serve(0xc0003de480, {0x1825ed0, 0xc0003d6900}) plugin_daemon-1 | /usr/local/go/src/net/http/server.go:2044 +0x5e8 plugin_daemon-1 | created by net/http.(*Server).Serve in goroutine 70 plugin_daemon-1 | /usr/local/go/src/net/http/server.go:3290 +0x4b4 plugin_daemon-1 | plugin_daemon-1 | [GIN] 2025/03/14 - 16:59:32 | 404 | 1.006291ms | 172.18.0.8 | POST "/plugin/9e2953d2-161a-4430-8b32-db1f6e72da5a/dispatch/model/validate_model_credentials" api-1 | 2025-03-14 16:59:32.642 ERROR [Dummy-6] [app.py:875] - Exception on /console/api/workspaces/current/model-providers/langgenius/openai_api_compatible/openai_api_compatible/models [POST] api-1 | Traceback (most recent call last): api-1 | File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request api-1 | rv = self.dispatch_request() api-1 | ^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request api-1 | return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/.venv/lib/python3.12/site-packages/flask_restful/__init__.py", line 489, in wrapper api-1 | resp = resource(*args, **kwargs) api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/.venv/lib/python3.12/site-packages/flask/views.py", line 110, in view api-1 | return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return] api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/.venv/lib/python3.12/site-packages/flask_restful/__init__.py", line 604, in dispatch_request api-1 | resp = meth(*args, **kwargs) api-1 | ^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/controllers/console/wraps.py", line 187, in decorated api-1 | return view(*args, **kwargs) api-1 | ^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/libs/login.py", line 94, in decorated_view api-1 | return current_app.ensure_sync(func)(*args, **kwargs) api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/controllers/console/wraps.py", line 30, in decorated api-1 | return view(*args, **kwargs) api-1 | ^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/controllers/console/workspace/models.py", line 154, in post api-1 | model_provider_service.save_model_credentials( api-1 | File "/app/api/services/model_provider_service.py", line 237, in save_model_credentials api-1 | provider_configuration.add_or_update_custom_model_credentials( api-1 | File "/app/api/core/entities/provider_configuration.py", line 422, in add_or_update_custom_model_credentials api-1 | provider_model_record, credentials = self.custom_model_credentials_validate(model_type, model, credentials) api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/core/entities/provider_configuration.py", line 402, in custom_model_credentials_validate api-1 | credentials = model_provider_factory.model_credentials_validate( api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/core/model_runtime/model_providers/model_provider_factory.py", line 191, in model_credentials_validate api-1 | self.plugin_model_manager.validate_model_credentials( api-1 | File "/app/api/core/plugin/manager/model.py", line 137, in validate_model_credentials api-1 | for resp in response: api-1 | ^^^^^^^^ api-1 | File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream api-1 | self._handle_plugin_daemon_error(error.error_type, error.message) api-1 | File "/app/api/core/plugin/manager/base.py", line 223, in _handle_plugin_daemon_error api-1 | raise PluginDaemonInternalServerError(description=message) api-1 | core.plugin.manager.exc.PluginDaemonInternalServerError: PluginDaemonInternalServerError: no available node, plugin not found nginx-1 | 192.168.160.1 - - [14/Mar/2025:16:59:32 +0000] "POST /console/api/workspaces/current/model-providers/langgenius/openai_api_compatible/openai_api_compatible/models HTTP/1.1" 500 56 "http://192.168.160.128/plugins?category=discover" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36" "-" sandbox-1 | [GIN] 2025/03/14 - 16:59:52 | 200 | 21.097µs | ::1 | GET "/health"
✔️ Expected Behavior
No response
❌ Actual Behavior
No response
The text was updated successfully, but these errors were encountered: