mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-31 12:08:03 +08:00
32 lines
1.7 KiB
Markdown
32 lines
1.7 KiB
Markdown
# Error Handling — Execution & Polling
|
|
|
|
Never expose raw API errors, stack traces, or JSON payloads to the user.
|
|
|
|
## Step 1 — Execute call
|
|
|
|
| Status | Message to user |
|
|
|---|---|
|
|
| 400 | "The test execution request was invalid. Check that the stage and suite IDs are correct." |
|
|
| 403 | "You don't have permission to run tests on this pipeline. Check your DevOps Testing API access." |
|
|
| 404 | "The pipeline or stage was not found. It may have been deleted." |
|
|
| 500 | "The DevOps Center org returned a server error. Try again in a few minutes." |
|
|
|
|
## Org-side execution rejections (read the real error, explain, finish — do NOT loop)
|
|
|
|
| Org error | Explanation to user |
|
|
|---|---|
|
|
| `environmentId: null` | "The environment connection isn't resolving for this stage. Re-authenticate or reconnect the stage's environment in DevOps Center, then try again." |
|
|
| `classIdList is null or empty — no tests to execute` | "The assigned suite(s) contain no test classes, so there's nothing to run. Add test classes to the suite (via dx-devops-test-suite-assignments-configure) and try again." |
|
|
|
|
In both cases: attempt the call once, explain the root cause and required fix, finish cleanly. Do NOT retry in a loop and do NOT fabricate a `runId` or results.
|
|
|
|
**Empty-org / no-data case:** If the stage has no assigned suites, report that clearly and do NOT call the execute endpoint or fabricate a suite/run.
|
|
|
|
## Step 2 — Polling
|
|
|
|
If no `DevopsTestExecution` record matches the runId, report it gracefully and do not fabricate result data. On timeout, surface the runId and wait for user instruction — never auto-retry.
|
|
|
|
## Do NOT use `sf apex run test`
|
|
|
|
That command is for the `platform-apex-test-run` skill, not DevOps Center test suites.
|