Ask Anvil

Answers to questions about automating PDFs, e-signatures, Webforms, and other paperwork problems.
E-signatures
Categories

Why did my e-signature request expire before it was signed, and how do I fix it?

You send a document out for signature, wait, and nothing comes back. When the signer finally opens the link, they see "this request has expired" or "this document has been voided," and your app never gets a completion. The code that created the request was fine. An expiration was in effect, and the request ran out of time before everyone signed.

What actually happened

E-signature platforms handle expiration in two different ways, and both produce the same symptom. Some apply a default expiration window to every request, so a request can lapse even if you never set one yourself. Others never expire a request unless you explicitly set an expiration date when you create it. Either way, once an expiration is in effect and every party has not finished before it passes, the platform marks the request as voided or expired, the signing link stops working, and you get that status instead of a completion.

Three things commonly push a request past its deadline: the default window (on platforms that have one) is shorter than your real turnaround time; the signer never opened the invitation because it went to spam, so the clock ran out on an unread email; or a sequential, multi-party flow stalled on one person and the whole request aged out.

How to fix it

Decide the expiration deliberately instead of leaving it to chance. If your platform expires requests by default, check that the default matches how long signers realistically take and extend it if it is too short. If your platform only expires requests when you ask it to, set the expiration explicitly (often through a field such as expires_at or an envelope expiration setting) so a short-lived link is a choice, not a surprise.

Turn on automatic reminders or expiration warnings so signers are nudged before the window closes, and confirm the invitation email is actually reaching the inbox (correct SPF and DKIM records help) so it does not sit unseen in spam.

Act before the deadline, not after. Many platforms let you extend the expiration while a request is still open, but once it has actually expired or been voided you generally cannot revive it, and the fix is to create and send a fresh request. Subscribe to the event your platform emits when a request is voided or expires (for example, an envelope-voided event) so your app can re-send or alert someone automatically, rather than waiting on a completion that never arrives.

Back to All Questions

The fastest way to build software for documents

Anvil Document SDK is a comprehensive toolbox for product teams launching document flows where PDF filling, signing, and complex conditional scenarios are necessary.
Explore Anvil
Anvil Webforms