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

# Context.submit_subtask

```python theme={"system"}
def ExecutionContext.submit_subtask(
  task: Task,
  depends_on: FutureTask | list[FutureTask] | None = None,
  cluster: str | None = None,
  max_retries: int = 0,
  optional: bool = False
) -> FutureTask
```

Submit a [subtask](https://docs-old.tilebox.com/workflows/concepts/tasks.md#subtasks-and-task-composition) from a currently executing task.

## Parameters

**task** `Task`

The task to submit as a subtask.

**depends\_on** `FutureTask | list[FutureTask] | None`

An optional task or list of tasks already submitted within the same context that this subtask depends on.

**cluster** `str`

An optional [cluster slug](https://docs-old.tilebox.com/workflows/concepts/clusters.md#managing-clusters) for running the subtask. If not provided, the subtask runs on the same cluster as the parent task.

**max\_retries** `int`

Specify the maximum number of [retries](https://docs-old.tilebox.com/workflows/concepts/tasks.md#retry-handling) for the subtask in case of failure. The default is 0.

**optional** `bool`

Whether the subtask is [optional](https://docs-old.tilebox.com/workflows/concepts/tasks.md#optional-tasks). If `True`, the subtask will not fail the job if it fails. Tasks that depend on this task will still execute even if this task failed. The default is `False`.

## Returns

A `FutureTask` object that represents the submitted subtask. Can be used to set up dependencies between tasks.

```python Python theme={"system"}
# within the execute method of a Task:
subtask = context.submit_subtask(MySubtask())
dependent_subtask = context.submit_subtask(
    MyOtherSubtask(), depends_on=[subtask]
)
gpu_task = context.submit_subtask(
    MyGPUTask(),
    cluster="gpu-cluster-slug"
)
flaky_task = context.submit_subtask(
    MyFlakyTask(),
    max_retries=5
)
optional_task = context.submit_subtask(
    MyOptionalTask(),
    optional=True
)
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.