Easy 5-minute fix: change createCall() to return the call instance it created, not field (instance variable) "_call". New Call is created in the method, then set to field, and then field is returned.
This causes silent error, and that shows up when the callers to this method try to run the same call for their needs.
Please consider changing this, as it looks there is zero cost to that change, and the problems it causes will be solved.
I have found I can create Call() by hand, passing by this issue; that is not reason to say "no" to this request.
If there is more to this, please let me know.