New features, improvements, and fixes to Dial

September 22, 2026

Changed

A WhatsApp line in a cooling-off period now retries itself

When WhatsApp puts a number in a cooling-off period before it will accept another verification request, setup fails and whatsapp.retryAvailableAt says when the period lifts. Until now that was where it stopped: the line sat failed until somebody asked for a retry, and a period that expired overnight was noticed the next morning.

Dial now waits the period out and re-runs setup by itself, exactly as if the retry had been asked for. It does this a bounded number of times and then stops, so a number WhatsApp keeps refusing does not retry forever.

The whatsapp object on a phone number gains autoRetryScheduled to tell the two apart:

{
"whatsapp": {
"status": "failed",
"error": "WhatsApp stopped accepting verification requests for this number. Try again in a couple of hours.",
"retryAvailableAt": "2026-09-22T03:18:19.584Z",
"autoRetryScheduled": true // nothing to do — Dial will retry when the period lifts
}
}

While autoRetryScheduled is true, leave the line alone and tell the user a retry is coming. When it is false and retryAvailableAt is null, the next attempt is yours to ask for. Asking for one yourself is unchanged, and still gives the line a fresh budget of automatic attempts.

This is an added field on an existing object, so nothing that reads a number today is affected.