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
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Self Checks
1. Is this request related to a challenge you're experiencing? Tell me about your story.
I try to access dify version 1.6.0 using my localhost. and when I opened my workflow, there is an alert says "Internaln Server Error". and when I try to run docker compose docker-api-1, show error like this:

[(test)]$ docker compose logs api
api-1 | Running migrations
api-1 | 2025-09-29 07:30:10.756 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 16 threads.
api-1 | Preparing database migration...
api-1 | Starting database migration.
api-1 | INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
api-1 | INFO [alembic.runtime.migration] Will assume transactional DDL.
api-1 | Database migration successful!
api-1 | [2025-09-29 07:30:26 +0000] [1] [INFO] Starting gunicorn 23.0.0
api-1 | [2025-09-29 07:30:26 +0000] [1] [INFO] Listening at: http://0.0.0.0:5001 (1)
api-1 | [2025-09-29 07:30:26 +0000] [1] [INFO] Using worker: gevent
api-1 | [2025-09-29 07:30:26 +0000] [43] [INFO] Booting worker with pid: 43
api-1 | 2025-09-29 07:30:34.341 INFO [MainThread] [utils.py:164] - NumExpr defaulting to 16 threads.
api-1 | 2025-09-29 07:31:38.785 ERROR [Dummy-1] [app.py:875] - Exception on /console/api/workspaces/current/tools/mcp [GET]
api-1 | Traceback (most recent call last):
api-1 | File "/app/api/libs/rsa.py", line 55, in get_decrypt_decoding
api-1 | private_key = storage.load(filepath)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 88, in load
api-1 | return self.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 91, in load_once
api-1 | return self.storage_runner.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/storage/opendal_storage.py", line 49, in load_once
api-1 | raise FileNotFoundError("File not found")
api-1 | FileNotFoundError: File not found
api-1 |
api-1 | During handling of the above exception, another exception occurred:
api-1 |
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 210, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/login.py", line 61, 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 31, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/controllers/console/workspace/tool_providers.py", line 764, in get
api-1 | tools = MCPToolManageService.retrieve_mcp_tools(tenant_id=tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/services/tools/mcp_tools_mange_service.py", line 108, in retrieve_mcp_tools
api-1 | ToolTransformService.mcp_provider_to_user_provider(mcp_provider, for_list=for_list)
api-1 | File "/app/api/services/tools/tools_transform_service.py", line 212, in mcp_provider_to_user_provider
api-1 | server_url=db_provider.masked_server_url,
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 280, in masked_server_url
api-1 | return mask_url(self.decrypted_server_url)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 264, in decrypted_server_url
api-1 | return cast(str, encrypter.decrypt_token(self.tenant_id, self.server_url))
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/core/helper/encrypter.py", line 25, in decrypt_token
api-1 | return rsa.decrypt(base64.b64decode(token), tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 87, in decrypt
api-1 | rsa_key, cipher_rsa = get_decrypt_decoding(tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 57, in get_decrypt_decoding
api-1 | raise PrivkeyNotFoundError("Private key not found, tenant_id: {tenant_id}".format(tenant_id=tenant_id))
api-1 | libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: 0de1411a-fb7f-4ceb-a7a5-44655dfb0f69
api-1 | 2025-09-29 07:31:49.233 ERROR [Dummy-2] [app.py:875] - Exception on /console/api/workspaces/current/tools/mcp [GET]
api-1 | Traceback (most recent call last):
api-1 | File "/app/api/libs/rsa.py", line 55, in get_decrypt_decoding
api-1 | private_key = storage.load(filepath)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 88, in load
api-1 | return self.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 91, in load_once
api-1 | return self.storage_runner.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/storage/opendal_storage.py", line 49, in load_once
api-1 | raise FileNotFoundError("File not found")
api-1 | FileNotFoundError: File not found
api-1 |
api-1 | During handling of the above exception, another exception occurred:
api-1 |
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 210, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/login.py", line 61, 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 31, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/controllers/console/workspace/tool_providers.py", line 764, in get
api-1 | tools = MCPToolManageService.retrieve_mcp_tools(tenant_id=tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/services/tools/mcp_tools_mange_service.py", line 108, in retrieve_mcp_tools
api-1 | ToolTransformService.mcp_provider_to_user_provider(mcp_provider, for_list=for_list)
api-1 | File "/app/api/services/tools/tools_transform_service.py", line 212, in mcp_provider_to_user_provider
api-1 | server_url=db_provider.masked_server_url,
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 280, in masked_server_url
api-1 | return mask_url(self.decrypted_server_url)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 264, in decrypted_server_url
api-1 | return cast(str, encrypter.decrypt_token(self.tenant_id, self.server_url))
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/core/helper/encrypter.py", line 25, in decrypt_token
api-1 | return rsa.decrypt(base64.b64decode(token), tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 87, in decrypt
api-1 | rsa_key, cipher_rsa = get_decrypt_decoding(tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 57, in get_decrypt_decoding
api-1 | raise PrivkeyNotFoundError("Private key not found, tenant_id: {tenant_id}".format(tenant_id=tenant_id))
api-1 | libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: 0de1411a-fb7f-4ceb-a7a5-44655dfb0f69
api-1 | 2025-09-29 07:31:49.321 ERROR [Dummy-3] [app.py:875] - Exception on /console/api/workspaces/current/tools/mcp [GET]
api-1 | Traceback (most recent call last):
api-1 | File "/app/api/libs/rsa.py", line 55, in get_decrypt_decoding
api-1 | private_key = storage.load(filepath)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 88, in load
api-1 | return self.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 91, in load_once
api-1 | return self.storage_runner.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/storage/opendal_storage.py", line 49, in load_once
api-1 | raise FileNotFoundError("File not found")
api-1 | FileNotFoundError: File not found
api-1 |
api-1 | During handling of the above exception, another exception occurred:
api-1 |
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 210, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/login.py", line 61, 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 31, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/controllers/console/workspace/tool_providers.py", line 764, in get
api-1 | tools = MCPToolManageService.retrieve_mcp_tools(tenant_id=tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/services/tools/mcp_tools_mange_service.py", line 108, in retrieve_mcp_tools
api-1 | ToolTransformService.mcp_provider_to_user_provider(mcp_provider, for_list=for_list)
api-1 | File "/app/api/services/tools/tools_transform_service.py", line 212, in mcp_provider_to_user_provider
api-1 | server_url=db_provider.masked_server_url,
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 280, in masked_server_url
api-1 | return mask_url(self.decrypted_server_url)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 264, in decrypted_server_url
api-1 | return cast(str, encrypter.decrypt_token(self.tenant_id, self.server_url))
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/core/helper/encrypter.py", line 25, in decrypt_token
api-1 | return rsa.decrypt(base64.b64decode(token), tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 87, in decrypt
api-1 | rsa_key, cipher_rsa = get_decrypt_decoding(tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 57, in get_decrypt_decoding
api-1 | raise PrivkeyNotFoundError("Private key not found, tenant_id: {tenant_id}".format(tenant_id=tenant_id))
api-1 | libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: 0de1411a-fb7f-4ceb-a7a5-44655dfb0f69
api-1 | 2025-09-29 07:31:50.390 ERROR [Dummy-4] [app.py:875] - Exception on /console/api/workspaces/current/tools/mcp [GET]
api-1 | Traceback (most recent call last):
api-1 | File "/app/api/libs/rsa.py", line 55, in get_decrypt_decoding
api-1 | private_key = storage.load(filepath)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 88, in load
api-1 | return self.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 91, in load_once
api-1 | return self.storage_runner.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/storage/opendal_storage.py", line 49, in load_once
api-1 | raise FileNotFoundError("File not found")
api-1 | FileNotFoundError: File not found
api-1 |
api-1 | During handling of the above exception, another exception occurred:
api-1 |
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 210, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/login.py", line 61, 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 31, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/controllers/console/workspace/tool_providers.py", line 764, in get
api-1 | tools = MCPToolManageService.retrieve_mcp_tools(tenant_id=tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/services/tools/mcp_tools_mange_service.py", line 108, in retrieve_mcp_tools
api-1 | ToolTransformService.mcp_provider_to_user_provider(mcp_provider, for_list=for_list)
api-1 | File "/app/api/services/tools/tools_transform_service.py", line 212, in mcp_provider_to_user_provider
api-1 | server_url=db_provider.masked_server_url,
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 280, in masked_server_url
api-1 | return mask_url(self.decrypted_server_url)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 264, in decrypted_server_url
api-1 | return cast(str, encrypter.decrypt_token(self.tenant_id, self.server_url))
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/core/helper/encrypter.py", line 25, in decrypt_token
api-1 | return rsa.decrypt(base64.b64decode(token), tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 87, in decrypt
api-1 | rsa_key, cipher_rsa = get_decrypt_decoding(tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 57, in get_decrypt_decoding
api-1 | raise PrivkeyNotFoundError("Private key not found, tenant_id: {tenant_id}".format(tenant_id=tenant_id))
api-1 | libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: 0de1411a-fb7f-4ceb-a7a5-44655dfb0f69
api-1 | 2025-09-29 07:31:52.434 ERROR [Dummy-5] [app.py:875] - Exception on /console/api/workspaces/current/tools/mcp [GET]
api-1 | Traceback (most recent call last):
api-1 | File "/app/api/libs/rsa.py", line 55, in get_decrypt_decoding
api-1 | private_key = storage.load(filepath)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 88, in load
api-1 | return self.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/ext_storage.py", line 91, in load_once
api-1 | return self.storage_runner.load_once(filename)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/extensions/storage/opendal_storage.py", line 49, in load_once
api-1 | raise FileNotFoundError("File not found")
api-1 | FileNotFoundError: File not found
api-1 |
api-1 | During handling of the above exception, another exception occurred:
api-1 |
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 210, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/login.py", line 61, 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 31, in decorated
api-1 | return view(*args, **kwargs)
api-1 | ^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/controllers/console/workspace/tool_providers.py", line 764, in get
api-1 | tools = MCPToolManageService.retrieve_mcp_tools(tenant_id=tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/services/tools/mcp_tools_mange_service.py", line 108, in retrieve_mcp_tools
api-1 | ToolTransformService.mcp_provider_to_user_provider(mcp_provider, for_list=for_list)
api-1 | File "/app/api/services/tools/tools_transform_service.py", line 212, in mcp_provider_to_user_provider
api-1 | server_url=db_provider.masked_server_url,
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 280, in masked_server_url
api-1 | return mask_url(self.decrypted_server_url)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/models/tools.py", line 264, in decrypted_server_url
api-1 | return cast(str, encrypter.decrypt_token(self.tenant_id, self.server_url))
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/core/helper/encrypter.py", line 25, in decrypt_token
api-1 | return rsa.decrypt(base64.b64decode(token), tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 87, in decrypt
api-1 | rsa_key, cipher_rsa = get_decrypt_decoding(tenant_id)
api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api-1 | File "/app/api/libs/rsa.py", line 57, in get_decrypt_decoding
api-1 | raise PrivkeyNotFoundError("Private key not found, tenant_id: {tenant_id}".format(tenant_id=tenant_id))
api-1 | libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: 0de1411a-fb7f-4ceb-a7a5-44655dfb0f69
api-1 | 2025-09-29 07:37:49.615 WARNING [Dummy-6] [version.py:37] - Check update version error: HTTPSConnectionPool(host='updates.dify.ai', port=443): Max retries exceeded with url: /?current_version=1.6.0 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f78798b8170>, 'Connection to updates.dify.ai timed out. (connect timeout=None)')).
how to solve this error? and the alert "Internal Server Error" should gone
2. Additional context or comments
No response
Beta Was this translation helpful? Give feedback.
All reactions