### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When calling `ReceiveMessage` on a FIFO queue, I _sometimes_ get HTTP 400 with the message: 

```
  [Aws\Sqs\Exception\SqsException]                                                                                                    
  Error executing "ReceiveMessage" on "http://localhost:4566/queue/us-west-2/000000000000/commands.fifo"; AWS HTTP error: Client er   
  ror: `POST http://localhost:4566/queue/us-west-2/000000000000/commands.fifo` resulted in a `400 Bad Request` response:              
  <?xml version='1.0' encoding='utf-8'?>                                                                                              
  <ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><Error><Code>Mi (truncated...)                                    
   MissingParameter (client): The request must contain the parameter MessageGroupId. - <?xml version='1.0' encoding='utf-8'?>         
  <ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><Error><Code>MissingParameter</Code><Message>The request must c   
  ontain the parameter MessageGroupId.</Message><Type>Sender</Type></Error><RequestId>88L3LXATEGVS0JF5S9BZDEQA95ELASZCKL4EJM5NCX9Y3   
  DHMP2RK</RequestId></ErrorResponse>  
```

There doesn't seem to be a particular pattern to it, and restarting localstack makes it go away. 

### Expected Behavior

`RecieveMessage` should never require a `MessageGroupId` parameter, because such a parameter [does not exist][1].

[1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

```
docker compose up -d
```

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

My calling code is (PHP SDK):

```php
        $options = [
            'QueueUrl' => $this->config->url,
            'WaitTimeSeconds' => 4,
            'MaxNumberOfMessages' => 10,
            'VisibilityTimeout' => 10,
        ];

        $result = $this->client->receiveMessage($options);
```

### Environment

```markdown
- OS: Mac OS 12.3
- LocalStack: 0.14.3
```


### Anything else?

_No response_
queue_name = f"queue-{short_uid()}"
        dl_dummy_arn = "dummy"
        max_receive_count = 42
        _redrive_policy = {
            "deadLetterTargetArn": dl_dummy_arn,
            "maxReceiveCount": max_receive_count,
        }
        with pytest.raises(Exception) as e:
            sqs_create_queue(
                QueueName=queue_name, Attributes={"RedrivePolicy": json.dumps(_redrive_policy)}
            )
        e.match("InvalidParameterValue")
    def test_set_queue_policy(self, sqs_client, sqs_create_queue):
        queue_name = f"queue-{short_uid()}"
        queue_url = sqs_create_queue(QueueName=queue_name)
        attributes = {"Policy": TEST_POLICY}
        sqs_client.set_queue_attributes(QueueUrl=queue_url, Attributes=attributes)
        
        attributes = sqs_client.get_queue_attributes(QueueUrl=queue_url, AttributeNames=["All"])[
            "Attributes"
        ]
        policy = json.loads(attributes["Policy"])
        assert "sqs:SendMessage" == policy["Statement"][0]["Action"]
        attributes = sqs_client.get_queue_attributes(QueueUrl=queue_url, AttributeNames=["Policy"])[
            "Attributes"
        ]
        policy = json.loads(attributes["Policy"])
        assert "sqs:SendMessage" == policy["Statement"][0]["Action"]
    def test_set_empty_queue_policy(self, sqs_client, sqs_create_queue):