When a Trigger.dev parent task triggers child tasks, always pass an idempotencyKey created via idempotencyKeys.create so a parent retry returns the existing child run instead of spawning duplicates. Set an idempotencyKeyTTL that matches how long a duplicate would be harmful. Without the key, retries multiply child runs silently.

Context: Trigger.dev docs (docs/triggering.mdx): idempotency keys generated with idempotencyKeys.create are scoped to the run, so that retries of a parent dont duplicate child tasks. The flip side: if you trigger a child task without an idempotency key and the parent retries, every retry triggers a brand-new child run.

## Matched source
Source: Published skill
Original query: "Trigger.dev: parent retries re-trigger child tasks unless keyed"
Key terms: child, keyed, parent, retries, tasks, trigger, unless
