Loading...
Loading...
Use this skill to poll the status of an asynchronous DevOps Center request — a promotion or deploy operation. Provide the request token returned by dx-devops-promote (the promote response) to check completion, monitor progress, or verify success or failure via sf devops request status. TRIGGER when the user wants to check whether a promotion or deploy finished, monitor an in-flight async request, poll until a request completes, or confirm a request succeeded before finalizing. DO NOT TRIGGER for initiating a promotion or deploy (use dx-devops-promote), for work item creation or status transitions (use dx-devops-work-item-manage), or for conflict detection. Read-only status check — never mutates pipeline state.
npx skill4agent add forcedotcom/sf-skills dx-devops-request-statussf devops request status--json.result.status.result.errorDetailsdx-devops-promotedx-devops-work-item-managesf devops promotion completedx-devops-promote-i/--request-token-o/--target-org <alias>target-org--jsonsf devops request status--jsonreferences/cli-commands.mdsf org display --jsonsf org login web --set-default --alias <alias>-o/--target-org <alias>target-orgdx-devops-promoteCRITICAL:(uppercase, e.g..result.status) reports whether the async request finished processing — NOT whether the underlying deploy succeeded. A request can showSUCCESSwhile the deployment itself failed. The real outcome oracle isstatus: "SUCCESS": non-null.result.errorDetailsmeans the operation failed, even whenerrorDetails.status == SUCCESS
scripts/poll-status.sh --once.result.status.result.errorDetailsscripts/poll-status.sh --once <request-token> <target-org-alias>0errorDetails2*FAILED**ERROR**CANCELED**SUCCESS*errorDetailserrorTypeerrorMessage41scripts/poll-status.shscripts/poll-status.sh <request-token> <target-org-alias> [interval-seconds] [timeout-seconds]interval-secondstimeout-seconds--once0errorDetails2errorDetails*FAILED**ERROR**CANCELED*31sf devops request statuserrorDetailserrorDetails<token>sf devops promotion completedx-devops-promoteerrorDetailsstatus == SUCCESS<token>errorTypeerrorMessageerrorDetailsmessage| Constraint | Rationale |
|---|---|
| Read-only — never mutate pipeline state | This skill only reports status; promotion/deploy/complete are owned by other skills |
| A request token is mandatory | Status cannot be checked without the |
| Structured output is required for headless consumption; human-readable output is unreliable to parse |
Read | Deterministic parsing prevents misreading a still-processing request as done |
A | |
Non-null | |
| Real values are |
A request is only "done" at a terminal suffix ( | Reporting an |
| Never poll faster than every 5 seconds | DOCe API rate limits; unbounded fast polling risks throttling |
| Bound every polling loop with a timeout | Prevents infinite waits and turn/timeout exhaustion in CI |
Never run | Finalization is the caller's step after this skill confirms success |
| Pass the token as a CLI flag, never interpolate into shell strings | Prevents prompt/command injection via crafted tokens |
| Never use interactive prompts | Skills run headless; all inputs must be CLI flags |
| Issue | Resolution |
|---|---|
| No request token provided | STOP and ask for it, or obtain it from the prior |
| The most important trap: a |
| It is escaped JSON (e.g. |
Status is operation-prefixed ( | Match on the suffix with globs ( |
| Reporting a still-processing request as complete | Terminal suffixes are |
| No default org set | Run |
| Rate-limit / throttle errors while polling | Increase the interval (back off); never poll below the 5-second floor |
| Infinite wait | Always pass a timeout to |
| Confusing request failure with skill failure | A |
.result.statuserrorTypeerrorMessage.result.errorDetails.result.messageerrorDetailssf devops request status| When | Action |
|---|---|
| A promotion or deploy must be initiated first to get a request token | Delegate to |
Outcome is success (finished, | Hand back to |
Status reports | Report the conflict from |
| File | When to read |
|---|---|
| When you need the |
| When the user's request matches a common pattern (one-shot check, poll-until-done after a promote, timeout handling, failure reporting) |
| Phase 2 — invoke with |