> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackshift.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Observability

> Inspect each job run through status, attempts, logs, payload, result, errors, and timeline.

<Tip>
  **Live.** This area is documented as current, user-reliable behavior.
</Tip>

## Goal

Debug Durable Jobs without guessing where the run stopped.

## Prerequisites

* At least one Durable Jobs run

## Workflow

<Steps>
  <Step>
    Open the run from the Durable Jobs page.
  </Step>

  <Step>
    Check status and attempts first.
  </Step>

  <Step>
    Read the timeline to see which step completed, failed, or started waiting.
  </Step>

  <Step>
    Use logs and error details to fix the underlying issue.
  </Step>
</Steps>

## What to inspect

* Status: queued, running, waiting, completed, failed, or canceled.
* Attempts: how many times StackShift has invoked the handler.
* Logs: handler output and platform events.
* Timeline: step completion, waiting state, event receipt, retries, and final result.

## Example timeline

```text Onboarding run theme={null}
[done] create-user
[done] send-email
[waiting] waiting for email.verified
[done] event received
[done] unlock-account
```

## Check status from code

```ts Fetch a run theme={null}
const run = await stackshift.getRun('run_123')

console.log(run.status)
console.log(run.attempts)
console.log(run.waiting_for_event)
```

## Expected result

<Check>
  You can answer whether a job is queued, running, waiting, completed, failed, or canceled.
</Check>

## Related guides

<CardGroup cols={2}>
  <Card title="Retries & Failure Handling" href="/durable-jobs/retries-and-failure-handling">
    Durable Jobs retries transient failures, preserves completed steps, and gives failed work a clear recovery path.
  </Card>
</CardGroup>
