### Summary

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/mandatory_filter.html makes no mention of the `msg` argument that was introduced in 0e7e3c0ae89a70c386168827b0c9defb956bee7e

### Issue Type

Documentation Report

### Component Name

lib/ansible/plugins/filter/mandatory.yml

### Ansible Version

```console
n/a
```


### Configuration

```console
n/a
```


### OS / Environment

n/a

### Additional Information

n/a

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
passlib_mapping = {
        'md5': 'md5_crypt',
        'blowfish': 'bcrypt',
        'sha256': 'sha256_crypt',
        'sha512': 'sha512_crypt',
    }
    hashtype = passlib_mapping.get(hashtype, hashtype)
    unknown_passlib_hashtype = False
    if PASSLIB_AVAILABLE and hashtype not in passlib_mapping and hashtype not in passlib_mapping.values():
        unknown_passlib_hashtype = True
        display.deprecated(
            f"Checking for unsupported password_hash passlib hashtype '{hashtype}'. "
            "This will be an error in the future as all supported hashtypes must be documented.",
            version='2.19'
        )
    try:
        return passlib_or_crypt(password, hashtype, salt=salt, salt_size=salt_size, rounds=rounds, ident=ident)
    except AnsibleError as e:
        reraise(AnsibleFilterError, AnsibleFilterError(to_native(e), orig_exc=e), sys.exc_info()[2])
    except Exception as e:
        if unknown_passlib_hashtype:
            
            
            choices = ', '.join(passlib_mapping)
            raise AnsibleFilterError(f"{hashtype} is not in the list of supported passlib algorithms: {choices}") from e
        raise
def to_uuid(string, namespace=UUID_NAMESPACE_ANSIBLE):