I assumed that if the Create Callback POST included a non-existent Queue ID, then the API response would return an error. It does not. A callback is created but it is created without a Queue and the API response that is returned is a success.
That is, I can send the API a made up Queue ID and a callback will be created.
To clarify, I am using the routing data object in my post:
I would consider this a bug in the API, which needs to be reported to Care for investigation.
The API does return a 202 accepted, which means that the request has not yet been fully processed so additional validation and activity may occur after the API response is sent. So there's a "not a bug" argument to be made based on that. However, the conversation does get created, there is an ACD participant for the non-existent queue, and it is still in a connected state. There is not additional validation performed to prevent this case. This creates an orphaned/stuck conversation and is something the API and/or the Genesys Cloud services should protect against.