Child-workflows + Signals

Child workflow start is async, and you should wait for the the child to start before signaling it.
See this post on how to wait for it to start: Best way to create an async child workflow - #2 by maxim
and also Java SDK sample: samples-java/src/main/java/io/temporal/samples/asyncchild at master · temporalio/samples-java · GitHub

note that calling the get on the promise (childExecution.get() as in the sample) it waits for the child workflow to starts. You should be able to signal it after that returns successfully