From 51cfaeb02ded42edee1acec69ce330655cf2bc13 Mon Sep 17 00:00:00 2001 From: Daniel van Strien Date: Sun, 28 Jun 2026 15:57:30 +0100 Subject: [PATCH 1/2] Document `hf jobs wait` in the Manage Jobs guide Add a "Wait for Jobs to finish" section to docs/hub/jobs-manage.md covering `hf jobs wait`: single/multiple Jobs, --timeout, exit-code chaining with &&, and a pointer to the Python `wait_for_job()` API. The Jobs docs previously documented `inspect` and `logs` for monitoring but never `wait`. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/hub/jobs-manage.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/hub/jobs-manage.md b/docs/hub/jobs-manage.md index 3f158c6436..94672e3511 100644 --- a/docs/hub/jobs-manage.md +++ b/docs/hub/jobs-manage.md @@ -158,6 +158,35 @@ hf jobs inspect --namespace hf jobs logs --namespace ``` +## Wait for Jobs to finish + +Use `hf jobs wait` to block until one or more Jobs reach a terminal state (`COMPLETED`, `CANCELED`, `ERROR` or `DELETED`). It exits with code `0` only if every Job completed successfully, and a non-zero code otherwise — handy for chaining steps in shell scripts or CI: + +```bash +# Wait for a single Job +>>> hf jobs wait 693994e21a39f67af5a41ad0 + +# Wait for several Jobs at once (all must be in the same namespace) +>>> hf jobs wait + +# Wait for every currently running Job +>>> hf jobs ps -q | xargs hf jobs wait +``` + +Set a maximum wait with `--timeout` (accepts `s`, `m`, `h` or `d`): + +```bash +>>> hf jobs wait --timeout 30m 693994e21a39f67af5a41ad0 +``` + +Because `hf jobs wait` returns a non-zero exit code when a Job fails, you can chain it with `&&`. A non-detached `hf jobs run` (or `hf jobs uv run`) already blocks and exits non-zero on failure, so an explicit wait is only needed for detached Jobs (`-d`) or when waiting on a batch: + +```bash +>>> hf jobs wait 693994e21a39f67af5a41ad0 && echo "job completed successfully" +``` + +In Python, use [`wait_for_job()`](https://huggingface.co/docs/huggingface_hub/en/package_reference/hf_api#huggingface_hub.HfApi.wait_for_job); it returns the final `JobInfo` (a failed Job does not raise an exception), so check `job.status.stage`. + ## Debug a Job If a Job has an error, you can see it in on the Job page From 10a1356c2a885a9a65f7d63698ab1697fd750a77 Mon Sep 17 00:00:00 2001 From: Daniel van Strien Date: Mon, 29 Jun 2026 09:45:42 +0100 Subject: [PATCH 2/2] Drop Python wait_for_job reference; keep Jobs manage page CLI-only Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/hub/jobs-manage.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/hub/jobs-manage.md b/docs/hub/jobs-manage.md index 94672e3511..ef0018927d 100644 --- a/docs/hub/jobs-manage.md +++ b/docs/hub/jobs-manage.md @@ -185,8 +185,6 @@ Because `hf jobs wait` returns a non-zero exit code when a Job fails, you can ch >>> hf jobs wait 693994e21a39f67af5a41ad0 && echo "job completed successfully" ``` -In Python, use [`wait_for_job()`](https://huggingface.co/docs/huggingface_hub/en/package_reference/hf_api#huggingface_hub.HfApi.wait_for_job); it returns the final `JobInfo` (a failed Job does not raise an exception), so check `job.status.stage`. - ## Debug a Job If a Job has an error, you can see it in on the Job page