SQS specified queue does not exist error
I was able to reproduce an anonymous report of a potential timeout when using SQS rendezvous. When configuring two bridges at the same time, I get the following error in the Tor log:
Jun 17 20:14:29.000 [notice] Managed proxy "./client": broker failure operation error SQS: GetQueueUrl, https response error StatusCode: 400, RequestID: fa65187a-f5bf-5bfb-8af9-4690261bb712, AWS.SimpleQueueService.NonExistentQueue: The specified queue does not exist.
My torrc file was as follows:
UseBridges 1
DataDirectory datadir
ClientTransportPlugin snowflake exec ./client -log snowflake.log
Bridge snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 ice= utls-imitate=hellorandomizedalpn sqsqueue=https://sqs.us-east-1.amazonaws.com/893902434899/snowflake-broker sqscreds=eyJhd3MtYWNjZXNzLWtleS1pZCI6IkFLSUE1QUlGNFdKSlhTN1lIRUczIiwiYXdzLXNlY3JldC1rZXkiOiI3U0RNc0pBNHM1RitXZWJ1L3pMOHZrMFFXV0lsa1c2Y1dOZlVsQ0tRIn0=
Bridge snowflake 192.0.2.4:80 8838024498816A039FCBBAB14E6F40A0843051FA fingerprint=8838024498816A039FCBBAB14E6F40A0843051FA ice= utls-imitate=hellorandomizedalpn sqsqueue=https://sqs.us-east-1.amazonaws.com/893902434899/snowflake-broker sqscreds=eyJhd3MtYWNjZXNzLWtleS1pZCI6IkFLSUE1QUlGNFdKSlhTN1lIRUczIiwiYXdzLXNlY3JldC1rZXkiOiI3U0RNc0pBNHM1RitXZWJ1L3pMOHZrMFFXV0lsa1c2Y1dOZlVsQ0tRIn0=
SocksPort auto
Relevant snowflake log:
snowflake log
2024/06/18 00:19:46 ---- Handler: snowflake assigned ----
2024/06/18 00:19:46 operation error SQS: GetQueueUrl, https response error StatusCode: 400, RequestID: 1a1cde49-e1fd-5e62-8036-80a3351f8285, AWS.SimpleQueueService.NonExistentQueue: The specified queue does not exist.
2024/06/18 00:19:46 Attempt 2 of 5 to retrieve URL of response SQS queue failed.
2024/06/18 00:19:47 operation error SQS: GetQueueUrl, https response error StatusCode: 400, RequestID: 1ec25810-3e2f-510f-9150-06faeacc0de8, AWS.SimpleQueueService.NonExistentQueue: The specified queue does not exist.
2024/06/18 00:19:47 Attempt 3 of 5 to retrieve URL of response SQS queue failed.
2024/06/18 00:19:48 operation error SQS: GetQueueUrl, https response error StatusCode: 400, RequestID: 039beb52-9a46-526f-a73e-b5b84ea29e88, AWS.SimpleQueueService.NonExistentQueue: The specified queue does not exist.
2024/06/18 00:19:48 Attempt 4 of 5 to retrieve URL of response SQS queue failed.
2024/06/18 00:19:49 Traffic Bytes (in|out): 17731 | 17252 -- (37 OnMessages, 35 Sends)
2024/06/18 00:19:49 operation error SQS: GetQueueUrl, https response error StatusCode: 400, RequestID: be4bee7e-a87f-5423-a2d5-b0947c9ae8c4, AWS.SimpleQueueService.NonExistentQueue: The specified queue does not exist.
2024/06/18 00:19:49 Attempt 5 of 5 to retrieve URL of response SQS queue failed.
2024/06/18 00:19:50 WebRTC: closing DataChannel
2024/06/18 00:19:50 WebRTC: closing PeerConnection
2024/06/18 00:19:50 WebRTC: Closing
2024/06/18 00:19:50 WebRTC: operation error SQS: GetQueueUrl, https response error StatusCode: 400, RequestID: be4bee7e-a87f-5423-a2d5-b0947c9ae8c4, AWS.SimpleQueueService.NonExistentQueue: The specified queue does not exist. Retrying...
Of the two configured bridges, one of the rendezvous always succeeds immediately and the other rendezvous succeeds on the next try. This seems to only be an issue when two SQS rendezvous are being performed simultaneously.