xinference, PluginInvokeError Invalid URL 'SF5cd.../v1/embeddings': No scheme supplied #372

Closed
opened 2026-02-16 10:19:10 -05:00 by yindo · 22 comments
Owner

Originally created by @R1310328554 on GitHub (Jun 16, 2025).

Self Checks

  • 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 (我已阅读并同意 Language Policy).
  • [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.3.1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

I've download the dify ,and run it using docker compose. I added some datasets and configed the llm / embeddding /rerank models provided by xinference . It's all fine.

Then I move all the files /folders within dify , including the docker folder , to another directory. Then something weird happends: the dify's Xorbits Inference plugin seems cannt work now.

When I try to hitTest my datasets, It show out me with the following error:

[xinference] Error: PluginInvokeError: {"args":{"description":"[models] Error: Invalid URL 'SFlCU/v1/embeddings': No scheme supplied. Perhaps you meant https://SFlCU..../v1/embeddings?"},"error_type":"InvokeError","message":"[models] Error: Invalid URL 'SFlCU/v1/embeddings': No scheme supplied. Perhaps you meant https://SFlCU/v1/embeddings?"}

SFlCU.... is shortened for SFlCUklEOl8xAsb3cyv8sZHwjPV/s9ohXwJzYbdoFZv4RwkJ9NPnO/AHQWgIqnbBQju2QRWHwf9KkfZgN+LkyMty3z/Kq/KVMNqJEMdX8PCFV4sZdxw8KC0vNBEnhuYDTarJPVBYAvVPHLK1gQirxviCKrIGJB8ruP2515lenNz/GcmaHZKpr8oS9SyOqYsdru0+VbtRMNoWWC3KOBOhO9Yh3b3d1DDGVF/TKqBPdlqNuJM612iLEy6tDQKYeW/bsAv+M3aci926Juk0puJ8kqarw6E2T9ciVUx3RVr+3QQsCz/9yFOFPZbkhXZVxXEy//ElndpPy+ehIBQDiAk34R3EmDLUOR2RFoCsH9TvbEuywcvUdaULeXqZw+ufts1ODIYO93xPEh6OYYmg0Xg/njBlkeLlHKCAXL+GyEBS0LY=

which is actually part of the encrypted_config of provider_models table : {"server_url": "SFlCUklE..GyEBS0LY=", "model_uid": "bge-large-zh-v1.5", "invoke_timeout": "60", "max_retries": "3", "max_tokens": 512}

✔️ Expected Behavior

hitTesting and dify ai chat with correct result, no errors tips show in the web ui.

Actual Behavior

Image

Originally created by @R1310328554 on GitHub (Jun 16, 2025). ### Self Checks - [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 (我已阅读并同意 [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. ### Dify version 1.3.1 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce I've download the dify ,and run it using docker compose. I added some datasets and configed the llm / embeddding /rerank models provided by xinference . It's all fine. Then I move all the files /folders within dify , including the docker folder , to another directory. Then something weird happends: the dify's Xorbits Inference plugin seems cannt work now. When I try to hitTest my datasets, It show out me with the following error: `[xinference] Error: PluginInvokeError: {"args":{"description":"[models] Error: Invalid URL 'SFlCU/v1/embeddings': No scheme supplied. Perhaps you meant https://SFlCU..../v1/embeddings?"},"error_type":"InvokeError","message":"[models] Error: Invalid URL 'SFlCU/v1/embeddings': No scheme supplied. Perhaps you meant https://SFlCU/v1/embeddings?"} ` SFlCU.... is shortened for SFlCUklEOl8xAsb3cyv8sZHwjPV/s9ohXwJzYbdoFZv4RwkJ9NPnO/AHQWgIqnbBQju2QRWHwf9KkfZgN+LkyMty3z/Kq/KVMNqJEMdX8PCFV4sZdxw8KC0vNBEnhuYDTarJPVBYAvVPHLK1gQirxviCKrIGJB8ruP2515lenNz/GcmaHZKpr8oS9SyOqYsdru0+VbtRMNoWWC3KOBOhO9Yh3b3d1DDGVF/TKqBPdlqNuJM612iLEy6tDQKYeW/bsAv+M3aci926Juk0puJ8kqarw6E2T9ciVUx3RVr+3QQsCz/9yFOFPZbkhXZVxXEy//ElndpPy+ehIBQDiAk34R3EmDLUOR2RFoCsH9TvbEuywcvUdaULeXqZw+ufts1ODIYO93xPEh6OYYmg0Xg/njBlkeLlHKCAXL+GyEBS0LY= which is actually part of the **encrypted_config** of **provider_models** table : {"server_url": "SFlCUklE..GyEBS0LY=", "model_uid": "bge-large-zh-v1.5", "invoke_timeout": "60", "max_retries": "3", "max_tokens": 512} ### ✔️ Expected Behavior hitTesting and dify ai chat with correct result, no errors tips show in the web ui. ### ❌ Actual Behavior ![Image](https://github.com/user-attachments/assets/a156d365-84a3-412f-89e7-b97f0d647ca9)
yindo closed this issue 2026-02-16 10:19:10 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

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

The error you're seeing is likely caused by a problem with decrypting the server_url for your xinference provider after moving the Dify files. This usually happens if the encryption keys or config files required for decryption are missing, inaccessible, or mismatched in the new directory. As a result, the plugin tries to use the encrypted string as a URL, which leads to the "No scheme supplied" error.

To fix this, make sure that:

  • The encryption key (often set via an environment variable like SECRET_KEY or a .env file) is present and unchanged from your original setup.
  • All config files and secrets used for encryption/decryption are in the correct locations and accessible to your Docker containers.
  • Your Docker Compose volumes and environment variables are correctly mapped after the move.

If you changed any container names or volumes, double-check that there are no conflicts or duplicate containers accessing the same data, as this can also cause corruption or config issues. When running in Docker, using http://host.docker.internal for internal connections can help resolve some network-related config problems as well"https://github.com/langgenius/dify/issues/18274""https://github.com/langgenius/dify/issues/15933".

If you restore the original encryption key and config environment, the plugin should be able to decrypt the server_url and function normally.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Greeting --> Hi @R1310328554! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify team. <!-- Answer --> The error you're seeing is likely caused by a problem with decrypting the server_url for your xinference provider after moving the Dify files. This usually happens if the encryption keys or config files required for decryption are missing, inaccessible, or mismatched in the new directory. As a result, the plugin tries to use the encrypted string as a URL, which leads to the "No scheme supplied" error. To fix this, make sure that: - The encryption key (often set via an environment variable like SECRET_KEY or a .env file) is present and unchanged from your original setup. - All config files and secrets used for encryption/decryption are in the correct locations and accessible to your Docker containers. - Your Docker Compose volumes and environment variables are correctly mapped after the move. If you changed any container names or volumes, double-check that there are no conflicts or duplicate containers accessing the same data, as this can also cause corruption or config issues. When running in Docker, using http://host.docker.internal for internal connections can help resolve some network-related config problems as well["https://github.com/langgenius/dify/issues/18274"](https://github.com/langgenius/dify/issues/18274)["https://github.com/langgenius/dify/issues/15933"](https://github.com/langgenius/dify/issues/15933). If you restore the original encryption key and config environment, the plugin should be able to decrypt the server_url and function normally. <!-- 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/db5d40be-8b45-4cd9-a327-f495e63f4141?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/db5d40be-8b45-4cd9-a327-f495e63f4141?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/db5d40be-8b45-4cd9-a327-f495e63f4141?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/db5d40be-8b45-4cd9-a327-f495e63f4141?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/db5d40be-8b45-4cd9-a327-f495e63f4141?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/db5d40be-8b45-4cd9-a327-f495e63f4141?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/db5d40be-8b45-4cd9-a327-f495e63f4141?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

SECRET_KEY in the .env file is present, I did not modify it, neither changed any container names or volumes . How can i restore the original encryption key and config environment? should i regenerate the SECRET_KEY in the .env file? @dosu

@R1310328554 commented on GitHub (Jun 16, 2025): SECRET_KEY in the .env file is present, I did not modify it, neither changed any container names or volumes . How can i restore the original encryption key and config environment? should i regenerate the SECRET_KEY in the .env file? @dosu
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

You should not regenerate the SECRET_KEY in your .env file—doing so will prevent decryption of any previously encrypted configs. If your SECRET_KEY is unchanged, the next thing to check is that the privkeys directory (which stores tenant-specific private RSA keys) was also moved and is accessible in your new setup. These private keys, along with the database (which holds the public keys), are required to decrypt provider and plugin credentials. If the privkeys directory or its contents are missing or corrupted, decryption will fail even if the SECRET_KEY is correct. Make sure both the privkeys directory and your database are intact and mapped correctly in your Docker setup.

The SECRET_KEY is mainly used for JWT and signatures, not for decrypting provider configs—that's handled by the RSA keys in privkeys and the database public keys. Restoring those is what will resolve your issue, not regenerating the SECRET_KEY.
Reference

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> You should not regenerate the SECRET_KEY in your .env file—doing so will prevent decryption of any previously encrypted configs. If your SECRET_KEY is unchanged, the next thing to check is that the privkeys directory (which stores tenant-specific private RSA keys) was also moved and is accessible in your new setup. These private keys, along with the database (which holds the public keys), are required to decrypt provider and plugin credentials. If the privkeys directory or its contents are missing or corrupted, decryption will fail even if the SECRET_KEY is correct. Make sure both the privkeys directory and your database are intact and mapped correctly in your Docker setup. The SECRET_KEY is mainly used for JWT and signatures, not for decrypting provider configs—that's handled by the RSA keys in privkeys and the database public keys. Restoring those is what will resolve your issue, not regenerating the SECRET_KEY. [Reference](https://github.com/langgenius/dify/blob/41cb39eb5d4e74745f23c11d25fecad4dbb9700c/api/libs/rsa.py) <!-- 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/ccf5a88e-0510-4986-a3cb-236d5c2fa648?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/ccf5a88e-0510-4986-a3cb-236d5c2fa648?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/ccf5a88e-0510-4986-a3cb-236d5c2fa648?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/ccf5a88e-0510-4986-a3cb-236d5c2fa648?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/ccf5a88e-0510-4986-a3cb-236d5c2fa648?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/ccf5a88e-0510-4986-a3cb-236d5c2fa648?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/ccf5a88e-0510-4986-a3cb-236d5c2fa648?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

@dosu, I feel it could be my fault , not sure. I remembered that when i moving the files / folders in dify , it could be missing some files startswith a dot, since the 'mv ' command do not move the hidden files . So, what can i do if i really changed the SECRET_KEY

@R1310328554 commented on GitHub (Jun 16, 2025): @dosu, I feel it could be my fault , not sure. I remembered that when i moving the files / folders in dify , it could be missing some files startswith a dot, since the 'mv ' command do not move the hidden files . So, what can i do if i really changed the SECRET_KEY
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

If you changed the SECRET_KEY in your .env file, there’s unfortunately no way to decrypt any data (like provider configs or credentials) that was encrypted with the old key—unless you have a backup of the original SECRET_KEY. Dify does not provide a recovery or migration tool for this scenario. The SECRET_KEY is essential for verifying JWTs and signatures, and must remain unchanged to access previously encrypted data; regenerating it breaks access to all existing encrypted configs and sessions api/.env.example.

If you don’t have a backup of the original key, you’ll need to reconfigure your providers and secrets from scratch after setting a new SECRET_KEY. For future moves, always ensure you copy hidden files (like .env and the privkeys directory) using commands such as cp -a .* * or rsync -a to avoid missing critical configuration .gitignore docker/README.md.

If you do have a backup of the original SECRET_KEY, restore it in your .env file and restart your containers—your encrypted configs should work again. Also, make sure the privkeys directory is present and intact, as it’s required for decrypting provider/plugin credentials api/libs/rsa.py.

For best practices: always back up your .env and privkeys directory before moving or upgrading your deployment. Missing or changing either will result in permanent loss of access to encrypted data.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> If you changed the SECRET_KEY in your .env file, there’s unfortunately no way to decrypt any data (like provider configs or credentials) that was encrypted with the old key—unless you have a backup of the original SECRET_KEY. Dify does not provide a recovery or migration tool for this scenario. The SECRET_KEY is essential for verifying JWTs and signatures, and must remain unchanged to access previously encrypted data; regenerating it breaks access to all existing encrypted configs and sessions [api/.env.example](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/.env.example). If you don’t have a backup of the original key, you’ll need to reconfigure your providers and secrets from scratch after setting a new SECRET_KEY. For future moves, always ensure you copy hidden files (like .env and the privkeys directory) using commands such as `cp -a .* *` or `rsync -a` to avoid missing critical configuration [.gitignore](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/.gitignore) [docker/README.md](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/docker/README.md). If you do have a backup of the original SECRET_KEY, restore it in your .env file and restart your containers—your encrypted configs should work again. Also, make sure the privkeys directory is present and intact, as it’s required for decrypting provider/plugin credentials [api/libs/rsa.py](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/libs/rsa.py). For best practices: always back up your .env and privkeys directory before moving or upgrading your deployment. Missing or changing either will result in permanent loss of access to encrypted data. <!-- 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/ac96b628-6e9b-473c-8d2a-2c4abaa41473?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/ac96b628-6e9b-473c-8d2a-2c4abaa41473?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/ac96b628-6e9b-473c-8d2a-2c4abaa41473?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/ac96b628-6e9b-473c-8d2a-2c4abaa41473?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/ac96b628-6e9b-473c-8d2a-2c4abaa41473?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/ac96b628-6e9b-473c-8d2a-2c4abaa41473?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/ac96b628-6e9b-473c-8d2a-2c4abaa41473?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

@dosu which is the 'encrypted data' , list them all. how can i find it ? did it has any way to deencrypt them ?

@R1310328554 commented on GitHub (Jun 16, 2025): @dosu which is the 'encrypted data' , list them all. how can i find it ? did it has any way to deencrypt them ?
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

The main types of encrypted data in Dify are provider credentials and sensitive plugin tokens—these are stored in fields like encrypted_config in the provider_models table and similar places for plugins. You can find them in your database; the encrypted values look like long, random strings (not readable URLs or tokens).

Dify uses RSA encryption for these fields, with tenant-specific private keys stored in the privkeys directory and public keys in the database. If you lose the privkeys or change the keys, there’s no way to decrypt the data—restoring the original privkeys and database is the only way to regain access. The SECRET_KEY in .env is not used for this encryption; it’s for JWT/session signing only. There’s no built-in tool to decrypt or recover encrypted data if the keys are lost or changed—recovery is only possible from a backup of the original keys and database.
See code reference

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> The main types of encrypted data in Dify are provider credentials and sensitive plugin tokens—these are stored in fields like encrypted_config in the provider_models table and similar places for plugins. You can find them in your database; the encrypted values look like long, random strings (not readable URLs or tokens). Dify uses RSA encryption for these fields, with tenant-specific private keys stored in the privkeys directory and public keys in the database. If you lose the privkeys or change the keys, there’s no way to decrypt the data—restoring the original privkeys and database is the only way to regain access. The SECRET_KEY in .env is not used for this encryption; it’s for JWT/session signing only. There’s no built-in tool to decrypt or recover encrypted data if the keys are lost or changed—recovery is only possible from a backup of the original keys and database. [See code reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/libs/rsa.py) <!-- 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/51207949-4a39-4f59-bd67-441e85f285d1?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/51207949-4a39-4f59-bd67-441e85f285d1?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/51207949-4a39-4f59-bd67-441e85f285d1?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/51207949-4a39-4f59-bd67-441e85f285d1?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/51207949-4a39-4f59-bd67-441e85f285d1?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/51207949-4a39-4f59-bd67-441e85f285d1?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/51207949-4a39-4f59-bd67-441e85f285d1?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

@dosu , how can i reconfigure your providers and secrets from scratch? does it mean i have to remove the dify all ,and re install by clone the it again ?

@R1310328554 commented on GitHub (Jun 16, 2025): @dosu , how can i reconfigure your providers and secrets from scratch? does it mean i have to remove the dify all ,and re install by clone the it again ?
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

You don't need to remove or reinstall Dify to reconfigure providers and secrets from scratch. Just log in to the Dify web UI (as admin), go to the provider or plugin management section, and delete or update the broken provider/plugin configs. Then, add new providers and secrets with your current credentials—Dify will encrypt and store them using your present keys. This will overwrite any undecryptable or invalid configs in your database.

Make sure your privkeys directory and database are intact and properly mapped in your Docker setup, as these are required for encryption and decryption. For future moves, always back up your .env file and privkeys directory to avoid losing access to encrypted data. You can refer to the .env.example file for configuration templates if you need to reset any environment variables or storage settings .env.example.

No need to clone or reinstall—just re-register your providers and secrets through the UI or API, and you'll be set.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> You don't need to remove or reinstall Dify to reconfigure providers and secrets from scratch. Just log in to the Dify web UI (as admin), go to the provider or plugin management section, and delete or update the broken provider/plugin configs. Then, add new providers and secrets with your current credentials—Dify will encrypt and store them using your present keys. This will overwrite any undecryptable or invalid configs in your database. Make sure your privkeys directory and database are intact and properly mapped in your Docker setup, as these are required for encryption and decryption. For future moves, always back up your .env file and privkeys directory to avoid losing access to encrypted data. You can refer to the .env.example file for configuration templates if you need to reset any environment variables or storage settings [.env.example](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/.env.example). No need to clone or reinstall—just re-register your providers and secrets through the UI or API, and you'll be set. <!-- 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/e72d6c6f-efb7-4848-8556-153fe304dd52?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/e72d6c6f-efb7-4848-8556-153fe304dd52?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/e72d6c6f-efb7-4848-8556-153fe304dd52?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/e72d6c6f-efb7-4848-8556-153fe304dd52?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/e72d6c6f-efb7-4848-8556-153fe304dd52?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/e72d6c6f-efb7-4848-8556-153fe304dd52?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/e72d6c6f-efb7-4848-8556-153fe304dd52?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

@dosu, i've deleted the xinference plugin, and re added and reconfiged it , but i got the same error still , seems nothing changed . I very sad.

@R1310328554 commented on GitHub (Jun 16, 2025): @dosu, i've deleted the xinference plugin, and re added and reconfiged it , but i got the same error still , seems nothing changed . I very sad.
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

If deleting and re-adding the xinference plugin didn't fix the error, it's likely that some stale or undecryptable credentials are still in your database, or the privkeys directory is missing or mismatched. To fully reset:

  1. Make sure your privkeys directory is present and correctly mapped in Docker. If it's missing, Dify can't decrypt or re-encrypt any provider configs.
  2. Delete both the provider and all related model credentials for xinference—not just the plugin entry, but also any model-level configs in the provider_models table. Sometimes model-level configs persist even after deleting the provider, causing the same error to reappear when you re-add it. This can be done via the Dify UI (delete all xinference models and the provider) or directly in the database if needed (reference).
  3. Optionally, clear plugin directories in your Docker container to remove any cached plugin data:
    docker compose stop
    docker exec -it <dify-app-container-name> bash
    rm -rf /app/storage/cwd/plugins/plugin /app/storage/cwd/plugins/plugin-working /app/storage/cwd/plugins/persistence /app/storage/cwd/plugins/plugin-root
    docker compose up -d
    
    (reference)
  4. Re-add the xinference provider and models from scratch in the UI, making sure to enter a valid server_url (must start with http:// or https://).

If you still see the error after this, double-check that your privkeys directory matches your current database and that you didn't lose any hidden files during the move. If the privkeys are lost or mismatched, you will need to reconfigure all providers from scratch, as old encrypted configs can't be recovered without the original keys (reference).

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> If deleting and re-adding the xinference plugin didn't fix the error, it's likely that some stale or undecryptable credentials are still in your database, or the privkeys directory is missing or mismatched. To fully reset: 1. Make sure your privkeys directory is present and correctly mapped in Docker. If it's missing, Dify can't decrypt or re-encrypt any provider configs. 2. Delete both the provider and all related model credentials for xinference—not just the plugin entry, but also any model-level configs in the provider_models table. Sometimes model-level configs persist even after deleting the provider, causing the same error to reappear when you re-add it. This can be done via the Dify UI (delete all xinference models and the provider) or directly in the database if needed ([reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/models/provider.py)). 3. Optionally, clear plugin directories in your Docker container to remove any cached plugin data: ``` docker compose stop docker exec -it <dify-app-container-name> bash rm -rf /app/storage/cwd/plugins/plugin /app/storage/cwd/plugins/plugin-working /app/storage/cwd/plugins/persistence /app/storage/cwd/plugins/plugin-root docker compose up -d ``` ([reference](https://github.com/langgenius/dify/issues/20448)) 4. Re-add the xinference provider and models from scratch in the UI, making sure to enter a valid server_url (must start with http:// or https://). If you still see the error after this, double-check that your privkeys directory matches your current database and that you didn't lose any hidden files during the move. If the privkeys are lost or mismatched, you will need to reconfigure all providers from scratch, as old encrypted configs can't be recovered without the original keys ([reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/libs/rsa.py)). <!-- 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/462228ea-5d85-4716-86a9-e25d6f06d8b3?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/462228ea-5d85-4716-86a9-e25d6f06d8b3?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/462228ea-5d85-4716-86a9-e25d6f06d8b3?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/462228ea-5d85-4716-86a9-e25d6f06d8b3?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/462228ea-5d85-4716-86a9-e25d6f06d8b3?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/462228ea-5d85-4716-86a9-e25d6f06d8b3?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/462228ea-5d85-4716-86a9-e25d6f06d8b3?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

what is the privkeys directory, where is it? @dosu , list and explain all the tables in dify

@R1310328554 commented on GitHub (Jun 16, 2025): what is the privkeys directory, where is it? @dosu , list and explain all the tables in dify
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

The privkeys directory stores tenant-specific private RSA keys used to decrypt sensitive provider and plugin credentials in Dify. Each tenant has its own key at privkeys/{tenant_id}/private.pem. This directory is critical—if it's missing or mismatched, Dify can't decrypt or re-encrypt provider configs. In a typical Docker/local setup, privkeys is inside your mapped storage directory or volume; with cloud storage, it's in your configured bucket. Always back it up along with your .env file to avoid losing access to encrypted data.
See code reference

Dify's database has many tables, each serving a specific function. Here are the main ones:

  • accounts, tenants, tenant_account_joins: user and tenant management.
  • providers, provider_models, provider_model_settings: API provider and model configs (including encrypted credentials).
  • apps, app_model_configs, installed_apps, recommended_apps: app definitions and settings.
  • conversations, messages, message_feedbacks, message_files, message_annotations: chat and message history, feedback, and attachments.
  • datasets, documents, document_segments, embeddings, dataset_process_rules, dataset_permissions: knowledge base, document storage, and permissions.
  • api_tokens, api_requests, upload_files: API access and file uploads.
  • operation_logs, end_users, sites, tags, tag_bindings: logs, end-user info, site configs, and tagging.
  • workflows, workflow_runs, workflow_node_executions, workflow_app_logs: workflow definitions and execution logs.
  • tool_builtin_providers, tool_api_providers, tool_label_bindings, tool_model_invokes, tool_files: tool and plugin management.
  • saved_messages, pinned_conversations: user-saved and pinned chat items.

Each table has fields relevant to its function, like encrypted_config for provider credentials, or content and status for messages and documents. If you need details on a specific table or field, let me know!
Full schema reference

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> The privkeys directory stores tenant-specific private RSA keys used to decrypt sensitive provider and plugin credentials in Dify. Each tenant has its own key at privkeys/{tenant_id}/private.pem. This directory is critical—if it's missing or mismatched, Dify can't decrypt or re-encrypt provider configs. In a typical Docker/local setup, privkeys is inside your mapped storage directory or volume; with cloud storage, it's in your configured bucket. Always back it up along with your .env file to avoid losing access to encrypted data. [See code reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/libs/rsa.py) Dify's database has many tables, each serving a specific function. Here are the main ones: - accounts, tenants, tenant_account_joins: user and tenant management. - providers, provider_models, provider_model_settings: API provider and model configs (including encrypted credentials). - apps, app_model_configs, installed_apps, recommended_apps: app definitions and settings. - conversations, messages, message_feedbacks, message_files, message_annotations: chat and message history, feedback, and attachments. - datasets, documents, document_segments, embeddings, dataset_process_rules, dataset_permissions: knowledge base, document storage, and permissions. - api_tokens, api_requests, upload_files: API access and file uploads. - operation_logs, end_users, sites, tags, tag_bindings: logs, end-user info, site configs, and tagging. - workflows, workflow_runs, workflow_node_executions, workflow_app_logs: workflow definitions and execution logs. - tool_builtin_providers, tool_api_providers, tool_label_bindings, tool_model_invokes, tool_files: tool and plugin management. - saved_messages, pinned_conversations: user-saved and pinned chat items. Each table has fields relevant to its function, like encrypted_config for provider credentials, or content and status for messages and documents. If you need details on a specific table or field, let me know! [Full schema reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/models/model.py) <!-- 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/543ee1c6-75c6-40d9-b7cb-369fdd468954?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/543ee1c6-75c6-40d9-b7cb-369fdd468954?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/543ee1c6-75c6-40d9-b7cb-369fdd468954?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/543ee1c6-75c6-40d9-b7cb-369fdd468954?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/543ee1c6-75c6-40d9-b7cb-369fdd468954?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/543ee1c6-75c6-40d9-b7cb-369fdd468954?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/543ee1c6-75c6-40d9-b7cb-369fdd468954?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

I've installed a new xinference at 192.168.15.10:9997 and a embedding / rerank / llm models with same names in it, then i changed the url from from the original http://192.168.100.1:9997/ to http://192.168.15.10:9997/ , then I works , no 'No scheme supplied' any more!!

So, i can't understand why it just works. it seems there are some caches with the ip 192.168.100.1, but i can't find where is it, in which table. Even i deleted all the table data of provider_models and provider_model_settings.

the providers table is allways empty, other tables seems to no relation with models regarding to RAG. @dosu

@R1310328554 commented on GitHub (Jun 16, 2025): I've installed a new xinference at 192.168.15.10:9997 and a embedding / rerank / llm models with same names in it, then i changed the url from from the original http://192.168.100.1:9997/ to http://192.168.15.10:9997/ , then I works , no 'No scheme supplied' any more!! So, i can't understand why it just works. it seems there are some caches with the ip 192.168.100.1, but i can't find where is it, in which table. Even i deleted all the table data of provider_models and provider_model_settings. the providers table is allways empty, other tables seems to no relation with models regarding to RAG. @dosu
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

What likely happened is that Dify was still referencing a stale or undecryptable config for the old IP (192.168.100.1) somewhere in its in-memory state or plugin cache, even after you deleted the provider_models and provider_model_settings table data. Dify stores provider and model URLs (including for plugins like xinference) in the provider_models table, and changes should take effect immediately unless there’s an explicit cache or the app/plugin wasn’t fully restarted after DB changes. There’s no persistent file-system cache for provider URLs—everything is in the DB or in-memory of the running app or plugin process, which is cleared on restart reference.

When you pointed to a new xinference instance at a new IP and updated the URL, you forced Dify to use a fresh, valid config, which resolved the error. If you see the providers table empty, that’s normal for some setups—Dify mainly uses provider_models for model-level configs, especially for RAG and plugin workflows reference.

If you ever see similar issues, make sure to fully restart all Dify services and plugin daemons after DB or config changes to clear any in-memory state. There’s no hidden persistent cache for IPs or URLs outside the DB and memory.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> What likely happened is that Dify was still referencing a stale or undecryptable config for the old IP (192.168.100.1) somewhere in its in-memory state or plugin cache, even after you deleted the provider_models and provider_model_settings table data. Dify stores provider and model URLs (including for plugins like xinference) in the provider_models table, and changes should take effect immediately unless there’s an explicit cache or the app/plugin wasn’t fully restarted after DB changes. There’s no persistent file-system cache for provider URLs—everything is in the DB or in-memory of the running app or plugin process, which is cleared on restart [reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/models/provider.py). When you pointed to a new xinference instance at a new IP and updated the URL, you forced Dify to use a fresh, valid config, which resolved the error. If you see the providers table empty, that’s normal for some setups—Dify mainly uses provider_models for model-level configs, especially for RAG and plugin workflows [reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/core/provider_manager.py). If you ever see similar issues, make sure to fully restart all Dify services and plugin daemons after DB or config changes to clear any in-memory state. There’s no hidden persistent cache for IPs or URLs outside the DB and memory. <!-- 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/f7f600c2-6398-4b7a-a09d-79c8d6ee2b43?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/f7f600c2-6398-4b7a-a09d-79c8d6ee2b43?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/f7f600c2-6398-4b7a-a09d-79c8d6ee2b43?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/f7f600c2-6398-4b7a-a09d-79c8d6ee2b43?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/f7f600c2-6398-4b7a-a09d-79c8d6ee2b43?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/f7f600c2-6398-4b7a-a09d-79c8d6ee2b43?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/f7f600c2-6398-4b7a-a09d-79c8d6ee2b43?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

what does ./docker/volumes/app/storage/privkeys used for ? How does it work?
Does it have relations with the models or plugins ? @dosu

@R1310328554 commented on GitHub (Jun 16, 2025): what does ./docker/volumes/app/storage/privkeys used for ? How does it work? Does it have relations with the models or plugins ? @dosu
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

The ./docker/volumes/app/storage/privkeys directory stores tenant-specific private RSA keys that Dify uses to decrypt sensitive credentials for providers (like model endpoints) and plugins. Each tenant has its own private key at privkeys/{tenant_id}/private.pem. When you add or use a provider or plugin that needs to store secrets (such as API keys or URLs), Dify encrypts those values in the database using RSA; the private key from privkeys is required to decrypt them at runtime. If this directory is missing or mismatched, Dify can't read or write provider or plugin credentials, which will break model and plugin functionality reference reference.

Always back up this directory before moving or upgrading your deployment. It is directly related to models and plugins because it controls access to their encrypted configs.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> The ./docker/volumes/app/storage/privkeys directory stores tenant-specific private RSA keys that Dify uses to decrypt sensitive credentials for providers (like model endpoints) and plugins. Each tenant has its own private key at privkeys/{tenant_id}/private.pem. When you add or use a provider or plugin that needs to store secrets (such as API keys or URLs), Dify encrypts those values in the database using RSA; the private key from privkeys is required to decrypt them at runtime. If this directory is missing or mismatched, Dify can't read or write provider or plugin credentials, which will break model and plugin functionality [reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/libs/rsa.py) [reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/models/provider.py). Always back up this directory before moving or upgrading your deployment. It is directly related to models and plugins because it controls access to their encrypted configs. <!-- 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/6f5697af-d953-4868-b728-f53856f4e705?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/6f5697af-d953-4868-b728-f53856f4e705?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/6f5697af-d953-4868-b728-f53856f4e705?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/6f5697af-d953-4868-b728-f53856f4e705?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/6f5697af-d953-4868-b728-f53856f4e705?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/6f5697af-d953-4868-b728-f53856f4e705?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/6f5697af-d953-4868-b728-f53856f4e705?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 16, 2025):

Does xinference caches the privkeys or something like that ? @dosu

@R1310328554 commented on GitHub (Jun 16, 2025): Does xinference caches the privkeys or something like that ? @dosu
Author
Owner

@dosubot[bot] commented on GitHub (Jun 16, 2025):

Xinference does not cache privkeys or have access to them. Dify centrally manages all private key decryption and caching using Redis (for 120 seconds per tenant), but this is handled only in Dify’s core encryption library—not at the plugin or provider level. Plugins like xinference only ever see decrypted config data and never receive, store, or cache private keys themselves. This design keeps sensitive key material isolated and secure, and any caching is short-lived and never exposed to application or plugin code.
Reference

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jun 16, 2025): <!-- Answer --> Xinference does not cache privkeys or have access to them. Dify centrally manages all private key decryption and caching using Redis (for 120 seconds per tenant), but this is handled only in Dify’s core encryption library—not at the plugin or provider level. Plugins like xinference only ever see decrypted config data and never receive, store, or cache private keys themselves. This design keeps sensitive key material isolated and secure, and any caching is short-lived and never exposed to application or plugin code. [Reference](https://github.com/langgenius/dify/blob/2440ac43b191691548936587a58ae7b12ea1f866/api/libs/rsa.py) <!-- 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/94649998-1820-4232-bbb5-a0e3e040e794?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/94649998-1820-4232-bbb5-a0e3e040e794?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/94649998-1820-4232-bbb5-a0e3e040e794?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/94649998-1820-4232-bbb5-a0e3e040e794?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/94649998-1820-4232-bbb5-a0e3e040e794?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/94649998-1820-4232-bbb5-a0e3e040e794?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/94649998-1820-4232-bbb5-a0e3e040e794?feedback_type=other)</sup>&nbsp;&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/21066)
Author
Owner

@R1310328554 commented on GitHub (Jun 25, 2025):

WTF, it happens again, the same error , exactly ! I did nothing. @dosu

@R1310328554 commented on GitHub (Jun 25, 2025): WTF, it happens again, the same error , exactly ! I did nothing. @dosu
Author
Owner

@houliangxue commented on GitHub (Jun 30, 2025):

大哥和机器人聊这么久

@houliangxue commented on GitHub (Jun 30, 2025): 大哥和机器人聊这么久
Author
Owner

@dosubot[bot] commented on GitHub (Aug 21, 2025):

Hi, @R1310328554. I'm Dosu, and I'm helping the dify-official-plugins team manage their backlog and am marking this issue as stale.

Issue Summary:

  • You reported a PluginInvokeError in the xinference plugin after moving Dify files in a Docker setup, caused by an invalid URL missing a scheme.
  • The root cause is linked to missing or inaccessible encryption keys, particularly the privkeys directory with tenant-specific RSA private keys.
  • You were advised not to regenerate SECRET_KEY if unchanged, to ensure privkeys and database integrity, and to reconfigure providers if keys are lost.
  • Changing the xinference URL to a new IP temporarily resolved the error, likely due to cached stale configurations.
  • The error recurred later without any changes, indicating the issue remains unresolved.

Next Steps:

  • Please confirm if this issue is still relevant with the latest version of the dify-official-plugins repository by commenting here to keep the discussion open.
  • If no response is received within 5 days, I will automatically close this issue.

Thank you for your understanding and contribution!

@dosubot[bot] commented on GitHub (Aug 21, 2025): Hi, @R1310328554. I'm [Dosu](https://dosu.dev), and I'm helping the dify-official-plugins team manage their backlog and am marking this issue as stale. **Issue Summary:** - You reported a PluginInvokeError in the xinference plugin after moving Dify files in a Docker setup, caused by an invalid URL missing a scheme. - The root cause is linked to missing or inaccessible encryption keys, particularly the privkeys directory with tenant-specific RSA private keys. - You were advised not to regenerate SECRET_KEY if unchanged, to ensure privkeys and database integrity, and to reconfigure providers if keys are lost. - Changing the xinference URL to a new IP temporarily resolved the error, likely due to cached stale configurations. - The error recurred later without any changes, indicating the issue remains unresolved. **Next Steps:** - Please confirm if this issue is still relevant with the latest version of the dify-official-plugins repository by commenting here to keep the discussion open. - If no response is received within 5 days, I will automatically close this issue. Thank you for your understanding and contribution!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#372