Subscription issues

Cannot create a subscription

Check that you have done all of the following:

  • Specified a subscription name in the name field. For version v1beta2 and above, the subscription name must be in the form projects/project-identifier/subscriptions/subscription-name.
  • Specified the name of an existing topic to which you want to subscribe, in the topic field. For version v1beta2 and above, the topic name must be in the form projects/project-identifier/topics/topic-name.
  • Specified https://, in lower case, not http:// or HTTPS:// as the protocol for your receiving URL in the pushEndpoint field.

Push subscriber not receiving any messages

Check the following:

  • Look in Stackdriver Monitoring for errors related to the subscription in question.
  • On App Engine, we recommend that you use the /_ah/push-handlers/ prefix in the endpoints URL path, as described in Registering App Engine endpoints. This allows the endpoint to receive push messages from Cloud Pub/Sub API .
  • In other environments, make sure that your endpoint URL can be accessed from the Internet without requiring sign-in. You can check that the URL is not restricted by accessing it with a diagnostic tool such as cURL.
  • For domains other than, make sure to register the domain in the Google Cloud Platform Console. See Registering other endpoints for details.

Other issues

SocketTimeoutException when pulling messages

In most cases, this is caused by the default timeout (20 seconds) in the Java client library. Cloud Pub/Sub requires a longer timeout if you're using hanging pull calls (i.e., req.setReturnImmediately(false)), so it is recommended that you explicitly set a longer timeout. Refer to the RetryHttpInitializerWrapper class for setting a longer timeout.

403 (Forbidden) error

If you get this error, do the following:

  • Make sure you've enabled the Cloud Pub/Sub API in the GCP Console.
  • Make sure that the principal making the request has the required permissions on the relevant Cloud Pub/Sub API resources, especially if you are using Cloud Pub/Sub API for cross-project communication.
  • If you're using Cloud Dataflow, make sure that both <projectId> and the Compute Engine Service account <projectId> have the required permissions on the relevant Cloud Pub/Sub API resource. See Google Cloud Dataflow Security and Permissions for more information.
  • If you're using App Engine, check your project's Permissions page to see if an App Engine Service Account is listed as an Editor. If it is not, add your App Engine Service Account as an Editor. Normally, the App Engine Service Account is of the form <project-id>
Was this page helpful? Let us know how we did:

Send feedback about...

Cloud Pub/Sub Documentation