I can reproduce the bug.
Problem is caused by the sequence we update the cached jnlp file, resouces and shortcut.
The cached jnlp file is the first we update, and remove the old cached jnlp file. Then we update each cached JAR as listed in the jnlp. And finally before we launch, we update the shortcut to point to the updated cached jnlp file.
In this case, cached jnlp got updated in the beginning (created new jnlp and removed old cached one), and then the long JAR update begin. Here the networking crash happen, and java web start failed and exit. However, the shortcut are not updated to point to the new cached jnlp. So next time the user clicks on the shortcut again, it failed because it points to an non-existent jnlp file.
If shortcut exists, we need to make sure once cached jnlp is updated, we need to make sure the shortcut points to the new jnlp in the cache too, even if the application did not get started.