Skip to content

Troubleshooting

Start with the built-in diagnostics:

downctl doctor          # version, python, deps, proxy, plugin count
downctl -v get <url>    # verbose (shows a traceback on unexpected errors)

Downloads

Does an interrupted download restart from zero? No. Downloads resume from the piece bitmap; re-run the same command and only missing pieces are fetched. (DOWNCTL_TRUST_PARTIAL=1 only affects the complete-file judgement for a full-size local file whose holes can't be probed — it is not for resuming a smaller-than-expected file.)

Re-running re-downloads everything? Completed files are skipped (bitmap ledger, or size/checksum match).

"disk space" error A disk pre-flight (200 MB headroom) runs before each file; only that file fails. Free up space and re-run to resume.

The transfer seems stuck A stall watchdog aborts a transfer with no progress for --stall seconds and reconnects. Tune --stall, or check the proxy/network.

checksum failed N times The file repeatedly mismatches. Check the expected hash (or the source) — a server that mutates content will never pass.

HTTP / auth

401/403/404 Private resource or anonymous rate limit. Provide a token (HF_TOKEN/GITHUB_TOKEN or the plugin token) or use --mirror.

Proxy / WSL Set -p or the https_proxy/HTTP_PROXY env vars. Under WSL the Windows host proxy is auto-detected; override the host with WSL_HOST_IP. downctl doctor prints the detected proxy.

Redirects to another host don't carry the token Tokens are per-host (HF/GitHub only); the shared session is not given a global Authorization, so credentials are never sent to unrelated hosts.

SFTP

"Host key is not trusted" Host keys are verified against ~/.ssh/known_hosts by default. Add the host key, or disable verification with [plugins.sftp] known_hosts = "" (also accepts none/false).

"SFTP support requires asyncssh" Install the optional extra: pip install 'downctl[sftp]'.

S3

Presigned URLs expire (default 1 h). Very long transfers can outlive them — raise [plugins.s3] expires (max 7 days) or re-run.

Cleanup

downctl status <dir>    # incomplete + failed downloads
downctl clean <dir>     # remove leftover bitmaps / failed log / dead locks

clean never removes lock directories it cannot prove are dead, and never touches your data files.

Exit codes

Code Meaning
0 Success
1 One or more targets failed
130 Interrupted (progress kept; re-run to resume)