Public client with resource owner password credentials flow

I would like to use a public client with resource owner password credentials. I have enabled Direct Access Grants. The flow doesn’t seem to work for me without client_secret. I’m getting the following error when requesting token with username, password, grant_type and client_id

{
    "error": "invalid_client",
    "error_description": "INVALID_CREDENTIALS: Invalid client credentials"
}

kubernetes logs telling me

08:41:16,538 WARN  [org.keycloak.events] (default task-270) type=LOGIN_ERROR, realmId=master, clientId=kong, userId=null, ipAddress=xx.xx.xx.xxx, error=invalid_client_credentials, grant_type=password

With confidential client and client secret my token requests with username, password, grant_type, client_id and client_secret are working. Is it supposed to work this way or should I change some settings when using public client?