I'm at home and don't have SW here, but it's likely you have another Mate that's interfering with this one. Try suppressing all other Mates involving this Part, then apply this one, then unsuppress the others one by one until you find the problem.
Can you upload a pack 'n go of the assembly?
It should be in the file I attached as that was a pack and go? The assem file is called perfume with lid once you open the zip file.
Well, you issue is that you have in-context relations between the bottle itself and the bottle top. If one part is dependent on another in an assembly, then it is a bad idea to have the driver (the parent) be floating and then dependent on the child. This will create a pretty big circular reference.
Either get rid of the in-context relations between parts or fix the parents and mate the children to the parents.
To state it more simply: You bottle is dependent on the bottle top through the assembly. Then, when you mate the bottle top to the bottle, it now wants to update the bottle because you moved the bottle top......then, updating the bottle will result in a rebuild of the mates associated with the bottle, which essentially creates a new rebuild of the bottle.....on and on into perpetuity. Solidworks is detecting this infinite loop and erroring out.
Cheers Dan, you've nailed it, and explained it great!