Sorry for the delay, @Adam_Griffiths! Are you sure the block you shared is actually addContact? I see that you're actually triggering addContact towards the end of the script. As mentioned previously, you are probably passing an object that can't be serialized - either a function or Promise - in or out of that particular code block.
If it's convenient for you, joining our recurring Office Hours would probably be the quickest way to resolve this!