dify - 💡(How to fix) Fix --frozen flag in uv sync causes plugin installation failure in China / limited-network environments

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fix / Workaround

  • uv is called with both --frozen and -i <mirror_url>, but --frozen takes precedence
  • uv.lock hardcodes all download URLs to https://files.pythonhosted.org/..., which are inaccessible or extremely slow from certain regions
  • The mirror URL is completely ignored; all packages still try to download from the official PyPI
  • Large wheels (numpy, pandas, curl-cffi) fail repeatedly with transient network errors and the process gets killed (signal: killed / signal: terminated)
  • Plugin installation fails every time
  • Workaround found: Manually deleting the uv.lock file from the plugin directory before installation resolves the issue. Without the lock file, uv runs without --frozen and correctly uses the mirror specified by -i.
RAW_BUFFERClick to expand / collapse

Self Checks

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

Dify version

1.14.2

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

  1. Deploy Dify v1.14.2 via Docker Compose on a server in mainland China (or any region with limited access to files.pythonhosted.org)
  2. Set PIP_MIRROR_URL in .env file, e.g. PIP_MIRROR_URL=http://mirrors.cloud.tencent.com/pypi/simple/
  3. Run docker compose up -d to restart services
  4. Open Dify Web UI, navigate to Plugins → Marketplace
  5. Install any plugin with heavy dependencies, e.g. langgenius/yahoo (depends on numpy, pandas, yfinance)
  6. Observe that the installation hangs and eventually fails
  7. Relevant log from docker-plugin-daemon-1:

uv sync --no-dev --frozen -i http://mirrors.cloud.tencent.com/pypi/simple/ -v ... No cache entry for: https://files.pythonhosted.org/packages/b6/23/.../numpy-2.3.5...whl Sending fresh GET request for: https://files.pythonhosted.org/packages/b6/23/.../numpy-2.3.5...whl Transient failure while handling response from https://files.pythonhosted.org/...; retrying after 1.5s... ... failed to init environment: signal: killed

✔️ Expected Behavior

  • When PIP_MIRROR_URL is set, the mirror should be used for downloading plugin dependencies
  • The -i / --index-url parameter passed to uv sync should take effect
  • Plugin installation should succeed within a reasonable time when a fast mirror is configured

❌ Actual Behavior

  • uv is called with both --frozen and -i <mirror_url>, but --frozen takes precedence
  • uv.lock hardcodes all download URLs to https://files.pythonhosted.org/..., which are inaccessible or extremely slow from certain regions
  • The mirror URL is completely ignored; all packages still try to download from the official PyPI
  • Large wheels (numpy, pandas, curl-cffi) fail repeatedly with transient network errors and the process gets killed (signal: killed / signal: terminated)
  • Plugin installation fails every time
  • Workaround found: Manually deleting the uv.lock file from the plugin directory before installation resolves the issue. Without the lock file, uv runs without --frozen and correctly uses the mirror specified by -i.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING