No mention in the help of the get being asynchronous, and the code looks
straightforward enough.
I do have a concern with your Perm(1 To 20) ...
The help for "get" talks about dynamic arrays and gives as example:
Dim MyArray(1 To 5,1 To 10) As Integer
I don't know if it treats such definitions as dynamic, even though they're not.
The gist of it is that you need to allow extra bytes for descriptors.
Are you in a position to try this with a more "traditional" array dimension to
see if it helps?
The only other thing I found in a quick Google trawl was a suggestion to use
LenB() instead of Len() to get the length of UsrType.
Odd indeed that forcing a bad compile is enough to fix the problem for a while.
Maybe there is a bug.