### 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_
def __init__(self, message):
        super().__init__("MissingParameter", message, 400, True)
def generate_message_id():
    return long_uid()
def assert_queue_name(queue_name: str, fifo: bool = False):
    if queue_name.endswith(".fifo"):
        if not fifo:
            
            raise InvalidParameterValue(
                "Can only include alphanumeric characters, hyphens, or underscores. 1 to 80 in length"
            )
        
        queue_name = queue_name[:-5] + "_fifo"
    
    if not re.match(r"^[a-zA-Z0-9/_-]{1,80}$", queue_name):
        raise InvalidParameterValue(
            "Can only include alphanumeric characters, hyphens, or underscores. 1 to 80 in length"
        )
def check_message_content(message_body: str):
    error = "Invalid characters found. Valid unicode characters are #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF"
    if not re.match(MSG_CONTENT_REGEX, message_body):
        raise InvalidMessageContents(error)
def encode_receipt_handle(queue_arn, message: "SqsMessage") -> str:
    
    
    
    handle = f"{long_uid()} {queue_arn} {message.message.get('MessageId')} {message.last_received}"
    encoded = base64.b64encode(handle.encode("utf-8"))
    return encoded.decode("utf-8")
def decode_receipt_handle(receipt_handle: str) -> str: