I have some Flows where the first state is an <action-state> which contains only two <set>s and an unconditional <transition>:
It turns out that the second object <set> is not actually set. As shown above, service is set, but customer is not. If I reverse their sequence, customer is set but service is not.
Both objects are on the Session, and there are no typos. If I replace subsequent references to these objects with the full externalContext.sessionMap.object references, this works.
And, in fact, since this is the first state of the Flow, I was able to replace it with <on-start> instead of <action-state>, and there both <set>s work.
Which arguably might be more correct anyway, but something seems definitely broken with this <action-state> behavior.