Status
Check the status of a test upload by name or upload ID. Useful for polling an async run or retrieving results after the fact.
dcd status --upload-id <uuid> [flags]
dcd status --name <upload-name> [flags]One of --upload-id or --name is required. If multiple uploads share the same name, the most recent is returned.
Flags
--upload-id <uuid>
UUID of the upload to check
--name <name>
Name of the upload to check
--api-key <key>
Your DeviceCloud API key. Defaults to DEVICE_CLOUD_API_KEY env var
--json
Output results as JSON. Exits 0 once a result is retrieved (including a FAILED run); usage errors, such as omitting both --upload-id and --name, exit 1
The upload status is one of PASSED, FAILED, RUNNING, PENDING or QUEUED. It's never CANCELLED: a run with a cancelled test is reported as FAILED, while the test itself keeps its CANCELLED status.
Examples
dcd status --upload-id 7e12345f-eb12-12ec-a30b-bb1234f1d12adcd status --name "Nightly regression"Output:
⏺ Upload Status
⎿ ✗ failed
name Nightly regression
upload id 7e12345f-eb12-12ec-a30b-bb1234f1d12a
binary id 67894274-b789-4c1e-80d4-da8998998999
created 22/09/2026, 10:30:00
console https://console.devicecloud.dev/results?upload=7e12345f-eb12-12ec-a30b-bb1234f1d12a
⏺ Test Results
⎿ ✓ ./login-test/login.yaml · 1m 4s · 22/09/2026, 10:30:01
✗ ./login-test/onboarding.yaml · 32s · 22/09/2026, 10:30:01 · Element not found: Text matching regex next.* not foundDates and times are shown in your system's locale and time zone.
JSON Output
Use --json for machine-readable output:
If the lookup itself fails — for example the upload ID doesn't exist, or the API can't be reached — --json prints a FAILED status with an error message instead, and still exits 0:
Check for an error field before treating FAILED as a failed test run.
Use with jq to extract specific values:
Polling an Async Run
When using dcd cloud --async, use dcd status to poll for completion:
See Async Execution for more patterns.
Underlying API
dcd status calls GET /uploads/status on the DeviceCloud API. See Uploads API if you need to call it directly.
Last updated