Error AADSTS7000218 with a Public Client Application

AADSTS7000218: The request body must contain the following parameter: 'client_assertion' or 'client_secret'.

I received this error when using a PublicClientApplication. Strange, because the definition of a public client is one that does not have a secret or any other assertion.

The cause - when I registered the application, I forgot to add the Mobile and desktop platform on the Authentication tab.

h.t. Andrew Helwer: https://github.com/Azure-Samples/active-directory-dotnetcore-devicecodeflow-v2/issues/9#issuecomment-547553013