I have discovered that if you authenticate via OAuth using the client_credentials flow instead of the password flow, Shield basically explodes because it tries to do something like User::findOrFail('oauth_client_id'), which if you're using the Dingo\Controllers, means bad business.
Not sure if this is intended or not, but thought I would bring it to your attention.