In the webhook documentation the requirements specify webhooks must be sent to a publicly accessible URL.
For Plane self-hosted instances may webhooks be emitted to private URLs? Specifically to a URL that resolves to a RFC1918 private IP address in the same kubernetes cluster where Plane is running?
Attempts to send webhooks to the URL are either not being sent at all or failing to reach the webhook API endpoint.
I am able to send a manually constructed webhook payload via curl to the endpoint from the same pod as the Plane worker eliminating the possibility of a network, firewall, or security group issue.
The logs show:
{“levelname”: “INFO”, “asctime”: “2026-04-12 02:07:20,560”, “module”: “webhook_task”, “name”: “plane.worker”, “message”: “Webhook 8606cb15-55d7-4b52-9c2c-1ec4d37808e6 sent successfully”}
{“levelname”: “INFO”, “asctime”: “2026-04-12 02:07:20,560”, “module”: “webhook_task”, “name”: “plane.worker”, “message”: “Webhook log saved successfully to database”}
{“levelname”: “WARNING”, “asctime”: “2026-04-12 02:07:20,555”, “module”: “mongo”, “name”: “plane.mongo”, “message”: “Cannot access collection ‘webhook_logs’: MongoDB not configured”}
Not certain if the MongoDB error is an issue.
Linking to existing GitHub issues for cross-reference:
opened 03:37PM - 29 Apr 24 UTC
🐛bug
### Is there an existing issue for this?
- [X] I have searched the existing iss… ues
### Current behavior
When I try to add a new webhook, I get the following error:

The webhook I try to use comes form n8n. When using curl from the host of my plane instance, it is working:
`
root@plane:~/plane-selfhost# curl https://[url]/webhook-test/300e18c7-3fb5-4ed0-9abb-f746634e79e5
{"message":"Workflow was started"}
root@plane:~/plane-selfhost#
`
In the API logs I can see the following when trying to add the webhook from inside plane:
`api-1 | WARNING 2024-04-29 14:42:03,955 log 25 140250880707384 Bad Request: /api/workspaces/todo/webhooks/
api-1 | 172.20.0.11:60544 - "POST /api/workspaces/todo/webhooks/ HTTP/1.0" 400`
Can someone tell me where I can find more details?
### Steps to reproduce
1. Go to the workspace settings
2. Select Webhooks
3. Click "Add webhook"
4. Paste webhook url I get from n8n.
### Environment
Production
### Browser
None
### Variant
Self-hosted
### Version
v0.18.0
opened 09:04PM - 26 Jul 24 UTC
✨feature
### Is there an existing issue for this?
- [X] I have searched the existing i… ssues
### Summary
Looks like Plane is now prohibiting the creation of webhooks with private IP addresses:
https://github.com/makeplane/plane/blob/2c609670c83a82301f41f7a69eca8bac1c8aec37/apiserver/plane/app/serializers/webhook.py#L43-L46
### Why should this be worked on?
While blocking private addresses for public installations seems reasonable, it prevents services in environments like VPN or Kubernetes cluster from being used as webhook endpoints.
Maybe we should add a configuration option to allow private addresses?