Skip to main content
PATCH
/
api
/
data-platform
/
workflow-run-steps
/
{stepId}
curl --request PATCH \
  --url https://app.solya.app/api/data-platform/workflow-run-steps/{stepId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "completedAt": "2026-05-23T06:00:08.000Z",
  "errorCode": "PLAN_CLOSED",
  "errorDetails": {
    "planId": "plan-uuid-restock-q2",
    "planStatus": "CLOSED"
  },
  "errorMessage": "Plan is closed and cannot receive new items",
  "organizationId": "org-uuid-1234",
  "status": "FAILED"
}
'
{
  "completedAt": "2026-05-23T06:00:12.000Z",
  "durationMs": 7000,
  "retryCount": 0,
  "status": "SUCCEEDED",
  "stepId": "step-uuid-aa1b2c"
}

Authorizations

Authorization
string
header
required

Static internal-ops token used by the data platform and internal cron jobs (e.g. zombie-run sweep). Validated via requireBearerToken inside the handler against a service-specific environment variable.

Path Parameters

stepId
string
required

Unique identifier of the workflow run step

Minimum string length: 1

Body

application/json
organizationId
string
required

Organization UUID for tenant isolation

Minimum string length: 1
completedAt
string<date-time>

Timestamp when the step completed; used with startedAt to auto-compute durationMs

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
errorCode
string | null

Machine-readable error code up to 64 characters (pass null to clear)

Maximum string length: 64
errorDetails
object

Structured error context for debugging (pass null to clear)

errorMessage
string | null

Human-readable error message (pass null to clear)

logs
string | null

Plain-text step logs captured by the data platform (pass null to clear)

output
object

Structured output produced by the step (pass null to clear the field)

retryCount
integer

Updated retry counter; increment by 1 on each retry

Required range: 0 <= x <= 9007199254740991
status
enum<string>

New status for the step (SUCCEEDED, FAILED, SKIPPED, CANCELLED, etc.)

Available options:
PENDING,
RUNNING,
SUCCEEDED,
FAILED,
SKIPPED,
CANCELLED

Response

Successful response

data
object
required
success
enum<boolean>
required
Available options:
true