Prompt
Cloud Functions webhook not triggering
Latest observation
If a Cloud Functions webhook isn’t triggering, the cause is usually one of a few things. Here’s a quick checklist to narrow it down:
1. Confirm the function is deployed and active
- Check the Cloud Console / Functions page.
- Make sure the function status is ACTIVE and deployment succeeded.
- Re-deploy if needed and watch for errors.
2. Verify the trigger type
Depending on your setup, the trigger may be:
- HTTP trigger: webhook endpoint must be called directly.
- Pub/Sub trigger: an event must be published to the topic.
- Firestore/Storage/Auth trigger: the specific event must happen in the linked service.
Make sure you’re using the correct trigger for a webhook.
3. Check the webhook URL
If it’s HTTP-based:
- Ensure the URL is correct.
- For Firebase/Google Cloud Functions, use the exact function URL.
- Watch for typos, missing region, or using the wrong project.
4. Check auth / permissions
A common issue is unauthorized access:
- If the function requires authentication, the webhook sender must include a valid token / identity.
- If it’s meant to be public, make sure ingress and IAM allow unauthenticated invocation.
5. Review logs
Look at:
- Cloud Logging / Logs Explorer
- Function logs for invocation attempts, errors, timeouts, or permission denied messages.
This is often the fastest way to see whether the request arrived at all.
6. Test the endpoint manually
Use curl or Postman:
curl -X POST https://YOUR_FUNCTION_URL \
-H "Content-Type: application/json" \
-d '{"test":"hello"}'
- If this works, the function is fine and the issue is with the webhook sender.
- If it doesn’t, the issue is in the function, URL, or permissions.
7. Check request method and headers
Some webhooks require:
POSTinstead ofGET- Specific content type like
application/json - Required signature headers or verification tokens
If the webhook provider expects a challenge/verification step, your function must respond properly.
8. Watch for runtime errors or timeouts
If the function is invoked but fails:
- It may be crashing before sending a response.
- It may be timing out.
- It may not be returning the expected HTTP status code.
9. Region mismatch
If the function is in one region and the webhook URL points somewhere else, it won’t trigger correctly.
10. Firewall / network restrictions
If your function is behind restrictions:
- Check ingress settings
- VPC connector / outbound networking
- Any allowlist/denylist on the provider side
If you want, paste:
- your function code,
- the trigger type,
- the webhook provider,
- and any error/log output,
and I can help pinpoint the exact issue.