I don't think this is correct. The SDK actually has a note about this:
"Note: It is possible to call GetPlayingIDsFromGameObject with io_ruNumItems = 0 to get the total size of the structure that should be allocated for out_aPlayingIDs."
https://www.audiokinetic.com/en/library/edge/?source=SDK&id=namespace_a_k_1_1_sound_engine_1_1_query_a8263cb018517fadf2220ca00d88f907f.html
You'll notice that the 3 arguments listed have "in_", "out_" or "io_" prefixes.
```
AkGameObjectID in_GameObjId,
AkUint32& io_ruNumIDs,
AkPlayingId* out_aPlayingIDs
```
It expects a valid GameObjectId as an input, it outputs the PlayingIDs to the out_aPlayingIDs, but the 2nd argument has an "io_" prefix to note that it is both an input AND an output. If you input 0, it should update that 2nd reference argument with the correct number of PlayingIds that get returned in out_aPlayingIDs. That's super useful if you need to iterate over the expected list of PlayingIds because it gives you a nice number to use for a loop over the raw pointer out_aPlayingIDs.
I'm having the same problem as OP though where I post an Event from a specific AkComponent, then I use GetPlayingIDsFromGameObject after the event has been posted and the AKRESULT returns AK_Fail.