Handwritten clients that use ServiceOptions:
when .setCredentials is used, the project id is not extracted from the service account.
This behavior is different when service account credentials are supplied via GOOGLE_APPLICATION_CREDENTIALS env var (project id is extracted)
https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/google-cloud-clients/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java#L465
Similar issue for BigQuery:
GoogleCloudPlatform/java-docs-samples#936