Steps to reproduce the issue
i) Upload a template as admin user and make sure "public" is selected when uploading it.
ii) Now login as a user to CloudStack and deploy a VM with the template created in step i).
iii) Create a VM snapshot as the user for the VM in step ii). Once created deploy a VM from the snapshot ( this will work as expected)
iv) Now login as admin again , edit the template created in step i) and Uncheck "public". This is make the template as private ( or else delete the template from UI)
v) Login as same user as in step ii) and try to create a VM from the same snapshot ( created in step iii)). This will fail now.