well..... I just answered my own question.
The .id MUST come after the .onScrollVisibilityChange
.id
.onScrollVisibilityChange
but why? its not logical at all. I understand how the nesting of view modifiers works, but why is the .id nullified if its before the other modifier?