Troubleshooting 404, 400, and 429 Errors in Freshsales
This article explains the causes and troubleshooting steps for 404, 400, and 429 errors encountered with Freshsales webhooks and APIs.
404 Error
A 404 error on a Freshsales webhook means that the endpoint URL configured in the webhook cannot be found on the receiving server.
This is not a Freshsales issue. The webhook request is successfully sent from Freshsales, but the custom server returns a 404 response because the URL is incorrect, the endpoint no longer exists, or the server is misconfigured.
How to troubleshoot
1. Check the endpoint URL in your webhook settings
Go to Admin Settings > Webhooks in Freshsales and verify the URL.
Check for:
Typos in the URL
Missing path segments, such as /api/v1/handler instead of /handler
Incorrect protocol, such as http instead of https
2. Confirm that the endpoint exists on your server
Contact your developer or system administrator to verify that the webhook endpoint is:
Deployed
Active
Accessible at the exact URL configured in Freshsales
3. Test the endpoint independently
Use a tool such as Postman, cURL, or a browser to send a test request to the URL.
If it returns a 404, the issue is with your server configuration and not Freshsales.
4. Review server logs
Check your server's access and error logs to determine whether the webhook request is reaching the server and why it is returning a 404.
Common causes include:
Incorrect routing
Missing route handlers
The endpoint being removed during a deployment
Key takeaway
Freshsales successfully delivers the webhook payload to the URL you provide. A 404 response indicates that your server cannot find the resource at that URL.
400 Bad Request Error in Freshsales Workflow Webhooks
A 400 Bad Request error means that the target API rejected your webhook request as invalid or malformed.
Common causes
This typically happens when:
Field names or formats do not match what the external API expects
JSON or XML syntax is broken, such as missing brackets, quotes, or extra commas
Required parameters are missing
Data types are incorrect, such as sending a string where a number is expected
The HTTP method or endpoint URL is wrong
Why does the "Test webhook" button often fail?
When you click Test webhook in the Freshsales workflow editor, the system sends dummy placeholder data instead of real values.
For example:
IDs appear as 12345
Stage names use sample text such as Qualification
Email addresses become generic placeholders
Many external APIs validate incoming data strictly and may reject these dummy values, even though the webhook may work correctly with real data from an actual record.
How to fix payload formatting issues
Ensure that the webhook payload follows the format expected by the receiving API.
String placeholders must be wrapped in quotes.
For example:
- String should be added as "Sample Value"
429 Too Many Requests Error in the Freshsales API
A 429 Too Many Requests error means that you have exceeded your plan's API rate limits.
Freshsales enforces hourly and per-minute quotas to protect platform performance. When your application or integration exceeds these limits, the API rejects additional requests until the applicable quota window resets.
Rate limits by plan
Both the hourly and per-minute limits apply. Exceeding either threshold triggers a 429 response.
Common causes
1. High-frequency polling
Zapier or other automation tools may check for updates too often, such as every 1–5 minutes.
2. Parallel integrations
Multiple apps or scripts may call the API at the same time.
3. Data volume spikes
Bulk imports, batch operations, or increased activity can result in higher API usage without a corresponding increase in API limits.
How to resolve 429 errors
1. Optimize integrations
Zapier: Increase polling intervals, for example, from 5 minutes to 15 minutes, in your Zap settings.
Batch operations: Group API calls where possible instead of making individual calls for each record.
Webhooks: Replace polling with event-driven webhooks to reduce unnecessary API calls.
2. Request a limit increase
If your use case consistently requires higher quotas, contact Freshsales Support through your account portal.
Include:
Your current plan
Typical daily/hourly request volume
Business justification for the increase
Support will review your request and may offer a custom quota adjustment.
When do rate limits reset?
Hourly limit: Resets 60 minutes after the start of your quota window.
Per-minute limit: Resets every 60 seconds.
Wait for the appropriate reset period before retrying failed requests.