If some rows in your filtrat column show an error or stay empty, the cause is almost always one of the settings below. Check them in order, then rerun only the failed rows.
Rows time out
Symptom: rows fail after a few seconds with a timeout, often on catch-all domains.
Fix: set the column's response timeout to 90000 ms. Clay's default is far too short: resolving a catch-all address can take up to 60 seconds. See Recommended column settings.
Many rows fail on a big run
Symptom: the first rows work, then many fail with 429 or a temporary error.
Fix: turn on Retry on failure with 2 retries on status codes 429, 502, 503, 504, and set the rate limit to 60 requests per 60,000 ms (our recommended column throughput; the endpoint itself allows 200 a minute per account). If several filtrat columns or tables call the same endpoint at once, they share that limit: lower each one.
Every row fails with 401
The API key isn't being sent correctly. Check that:
- the header name is
Authorization; - the value is
Bearer, one space, then the full key starting withak_; - the key hasn't been revoked on API → API keys;
- if you used an older key, you replaced its prefix in the snippet with the full key.
Every row fails with 400 or 405
The request is wrong. A 400 with the code VALIDATION_ERROR means the body is invalid, and the response lists what's wrong; a 405 means the method is wrong. Common causes:
- The method is
GETinstead ofPOST(405), or the fields were sent as query parameters. - The body isn't raw JSON.
resolve_catchallwas sent as the text"true"instead oftrue.- A column reference like
/Emaildoesn't match a column in your table, so the field arrives empty.
Compare your column with the body on API → Clay.
If only some rows fail with 422 and a code such as INVALID_EMAIL_SYNTAX, the request is fine but that row's value isn't: for example the cell doesn't hold a valid email address. Fix or skip those rows; they aren't charged.
Rows fail with 402
Your filtrat balance ran out. Top up in Credits & billing, then rerun the failed rows.
Rows succeed but a column is empty
- Found Email is empty: the status is
not_found. No email was found for that person; this is free. Adding the company name helps on some rows. - Diagnosis is empty: normal for verified addresses. It's filled only when an address isn't verified.
- A field you mapped is always empty: check the path, for example
$.domain_intelligence.catch_all, not$.catch_all.
Rerun only the failed rows
Filter the table to rows where the filtrat column has an error, and run the column on those. Failed requests are never charged.
Rows that already have a result: rerunning the find column returns the saved result for free, and so does rerunning the verify column for addresses checked in the last 180 days, as long as the body keeps "skip_cache": false. A row is charged again only if you set skip_cache to true, which runs a fresh check, or if it's a catch-all that was never resolved and is resolved now.
Still stuck?
Email support@filtrat.io with:
- your Clay table URL;
- which column (verify or find) and how you set it up (template, prompt or by hand);
- the error shown on a failed row.
Never include your API key.