The placeholder isn't set at the time the snippet tag is parsed. Tags for unset placeholders just get removed when they're parsed, so by the time the that info is needed, it isn't there.
If the page is cached (and I think it must be to cause the problem), you can look at the cached version of it in core/cache and see what's happening.
I'm not an expert on parsing order, but I suspect that because the snippet is uncached, the snippet tag is intact in the cached version of the resource, but when the page cache is created, the placeholder tag is not set and gets removed from the cached version of the snippet tag.
Making the placeholder tag uncached might delay its processing so that it would still be in the cached version of the snippet tag rather than being removed.
------------------------------------------------------------------------------------------
PLEASE, PLEASE specify the version of MODX you are using.
MODX info for everyone:
http://bobsguides.com/modx.html