The built-in FORMAT() function rejects the invariant culture identifier as if it was invalid.
The identifier for the invariant culture in .NET is documented to be an empty string, '', and FORMAT() is documented to accept any such culture identifier, but the '' identifier is rejected by the function in the same way as any string containing random garbage:
select format(getdate(), 'Y', ''); -- Results in an error.
Note that providing a string contaning a single zero terminator character makes FORMAT() to use the invariant culture, which apparently happens because internal string comparison finds such string to be equal to the empty string:
select format(getdate(), 'Y', nchar(0)); -- Works, but looks like a hack