# Creating child workflow in update method

**URL:** <https://community.temporal.io/t/creating-child-workflow-in-update-method/16646>\
**Category:** Community Support\
**Tags:** child-workflow, dotnet-sdk\
**Created:** [March 3, 2025, 8:19am UTC](https://community.temporal.io/t/creating-child-workflow-in-update-method/16646 "2025-03-03T08:19:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Luke](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/luke/32/5106_2.png) [@Luke](https://community.temporal.io/u/Luke)\
**Post date:** [March 3, 2025, 8:19am UTC](https://community.temporal.io/t/creating-child-workflow-in-update-method/16646/1 "2025-03-03T08:19:39Z")

</div>

Hi,

I’ve encountered a strange behavior when using Workflow Update method. According to the documentation Update handler can execute Activities and Child Workflows so my update executes a new child workflow (ExecuteChildWorkflowAsync).  
When the update gets called the child workflow starts and all seems to work great (the workflow itself simply prints hello to the console and exits).  
When I check the dashboard the child workflow it marked as completed, but when I click on the link itself (of the child WF in the dashboard) the child workflow is executed again ?! Every time I’m accessing the URL it starts, and not via the parent flow update method - verified with the debugger, so something else is triggering it.

Am I misusing the update method ?  
Thanks.

---

<div class="post-metadata">

**Author:** ![Chad\_Retz](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/chad_retz/32/1396_2.png) [@Chad\_Retz](https://community.temporal.io/u/Chad_Retz)\
**Post date:** [March 5, 2025, 7:15am UTC](https://community.temporal.io/t/creating-child-workflow-in-update-method/16646/2 "2025-03-05T07:15:31Z")

</div>

Visiting the UI should not be _executing_ the child workflow again, but it may be _replaying_ it to fetch information via workflow query. Replay does re-execute code but does not re-run any of the side effects. This is expected behavior since the UI issues a query to get user metadata.

---

<div class="post-metadata">

**Author:** ![Luke](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/luke/32/5106_2.png) [@Luke](https://community.temporal.io/u/Luke)\
**Post date:** [March 5, 2025, 9:06am UTC](https://community.temporal.io/t/creating-child-workflow-in-update-method/16646/3 "2025-03-05T09:06:51Z")

</div>

Thank you for the explanation.  
I just want to make sure that the behavior in my case is the expected one - I do see a console printout from my sub workflow. So although there is no side effect the workflow will re-run each time I access it via UI ?

---

<div class="post-metadata">

**Author:** ![Chad\_Retz](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/chad_retz/32/1396_2.png) [@Chad\_Retz](https://community.temporal.io/u/Chad_Retz)\
**Post date:** [March 7, 2025, 10:00pm UTC](https://community.temporal.io/t/creating-child-workflow-in-update-method/16646/4 "2025-03-07T22:00:58Z")

</div>

> [@Luke](#):
>
> So although there is no side effect the workflow will re-run each time I access it via UI ?

Yes, the code to build up the workflow to answer the query from the UI is technically running in a process we call “replay”, but it should be transparent to you since it should be side effect free. You should consider using `Workflow.Logger` in your workflows instead of `Console` because the former is replay-safe and the latter is not.
