---
title: "Push back a waiting step in a sub DAG-run for re-execution with feedback"
method: POST
path: "/dag-runs/{name}/{dagRunId}/sub-dag-runs/{subDAGRunId}/steps/{stepName}/push-back"
tags: ["dag-runs"]
---

# Push back a waiting step in a sub DAG-run for re-execution with feedback

`POST /dag-runs/{name}/{dagRunId}/sub-dag-runs/{subDAGRunId}/steps/{stepName}/push-back`

## Request

- Base URL: `http://localhost/api/v1`
- URL: `http://localhost/api/v1/dag-runs/{name}/{dagRunId}/sub-dag-runs/{subDAGRunId}/steps/{stepName}/push-back`
- Auth: one of:
  - HTTP bearer
  - HTTP basic
  - none

Pushes back a step that is in Waiting status within a sub DAG-run, providing input parameters that will be injected as environment variables when the step re-executes. The step must have an approval configuration.

## Path parameters

- `name` string, regex, required: Name of the DAG
- `dagRunId` string, required: Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
- `subDAGRunId` string, required
- `stepName` string, required

## Query parameters

- `remoteNode` string

## Request body

- PushBackStepRequest: Request body for pushing back a waiting step for re-execution with feedback
  - `inputs` object: Key-value parameters to provide as feedback. These will be injected as environment variables when the step re-executes.

## Response `200`

Step pushed back successfully

- PushBackStepResponse: Response after pushing back a waiting step
  - `dagRunId` string, required: The DAG run ID
  - `stepName` string, required: The pushed-back step name
  - `approvalIteration` integer, required: The current approval iteration count after push-back
  - `resumed` boolean, required: Whether the DAG run was re-enqueued for execution
  - `subDAGRunId` string: The sub-DAG run ID, present only for sub-DAG push-back operations

## Other responses

- `400`: Step is not in Waiting status, missing required inputs, or step does not have approval config
- `404`: Sub DAG-run or step not found
- `default`: Generic error response

## Changes

> 208 revisions in range; 1 not diffed.

- **2026-07-23** (v1) `75b8e91aaf57`: 9 warning
  - added the new `conflict` enum value to the `code` response property for the response status `400`
  - added the new `conflict` enum value to the `code` response property for the response status `404`
  - added the new `conflict` enum value to the `code` response property for the response status `default`
  - added the new `human_task_resume_failed` enum value to the `code` response property for the response status `400`
  - …5 more
- **2026-05-24** (v1) `8a2d5d3e9608`: 3 warning
  - added the new `rate_limited` enum value to the `code` response property for the response status `400`
  - added the new `rate_limited` enum value to the `code` response property for the response status `404`
  - added the new `rate_limited` enum value to the `code` response property for the response status `default`
- **2026-03-08** (v1) `721fc511c692`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/dagucloud/apis/dagu/changes/dag-runs/:name/:dagRunId/sub-dag-runs/:subDAGRunId/steps/:stepName/push-back/post.md)

---

[API](https://skmtc.dev/dagucloud/apis/dagu.md) - [All operations](https://skmtc.dev/dagucloud/apis/dagu/llms.txt) - [OpenAPI document](https://skmtc.dev/dagucloud/apis/dagu/revisions/742c8ecb39ce?raw)
