One simple possibility because you haven’t described exactly how the [”] value is being used as an ‘entry’… An entry for what? There’s no reasonable way to specify it as an entry for the RTVUSRPRF SPCAUT() parameter, so I assume you mean the CRTUSRPRF SPCAUT() parameter.
For CRTUSRPRF, the value from RTVUSRPRF cannot be used directly. The CRTUSRPRF SPCAUT() parameter is a list parameter while the RTVUSRPF SPCAUT() parameter is a single *CHAR (100) variable, not a list.
The value from RTVUSRPRF must be parsed into all of the individual special authorities. When there are fewer than eight, you end up with the entries at the end of the list being [”] or practically null since they’re just blanks.
The simple fix is to test each entry as it’s parsed from the string; when an entry equals all blanks, just replace it with [’*N’]. The value [’*N’] can almost always be used as a kind of null placeholder for any parameter value. That’s just how commands are allowed to be constructed; very handy for cases such as yours.