The remote host doesn't respond until the script finishes, which is the problem. The step times out locally when the value set in the timeout field is met, regardless of whether or not the actual process is complete.
For the sake of completeness, if the duration is set to some high value, the step will complete as expected when it receives a response if the response comes before the duration is met.
|