# OperationStep

> The OperationStep object in the Guv API.

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `name` * | string |  |
| `title` | string | Friendly label. |
| `status` * | `pending`, `running`, `succeeded`, `failed`, `skipped`, `cancelled` |  |
| `attempt` | integer |  |
| `started_at` | string (date-time) or null |  |
| `finished_at` | string (date-time) or null |  |
| `error` | [Problem](/docs/api/objects/problem/) or any or null |  |

\* always present

## Example

```json
{
  "name": "build",
  "title": "Building your app",
  "status": "pending",
  "attempt": 0,
  "started_at": "2026-10-22T13:05:00Z",
  "finished_at": "2026-10-22T13:05:00Z",
  "error": {
    "type": "https://guv.dev/errors/secret_missing",
    "title": "A secret this needs has not been set",
    "status": 422,
    "code": "secret_missing",
    "detail": "Service web references secret://stripe-secret-key, which is not set in production.",
    "fix": "guv secrets set stripe-secret-key --env production",
    "docs_url": "https://guv.dev/errors/secret_missing",
    "instance": "/v1/projects/primecarers/manifest/plan",
    "request_id": "req_01jbx2m9k7q4r8t5v6w3y0z1rq"
  }
}
```
