It turns out the answer was simple I didnt have my plugins content in a subdirectory slug inside the zip file
eg.
I had :
my_plugin.zip
|- my_plugin.php
|- admin
|-admin.php
I should have had
my_plugin.zip
|-my_plugin
|-my-plugin.php
|-admin
|-admin.php
Once you add that sub directory the auto updated will work as expected