LEASE_EXPIRED
The lease was older than its validity window when the transaction arrived.
| HTTP status | 409 |
| Group | Relay path |
| Retryable | Yes — the same request may be sent again |
| Re-sign | SAME_BYTES — resend the transaction you already have, byte for byte |
What happened
A lease is short-lived on purpose: it is the only freshness bound a MultiversX transaction (which never expires) can be given.
What to do
If details.renewable is true, renew the lease and resend the same signed bytes. Otherwise assign again and sign once more.
Extra members
This code carries renewable in the problem document, on top of the common members.
The problem document
Every error is application/problem+json (RFC 9457) with the same shape:
{
"type": "https://docs.co-relayer.com/errors/lease-expired",
"title": "The lease was older than its validity window when the transaction arrived.",
"status": 409,
"detail": "A sentence about this specific occurrence.",
"instance": "req_01JB…",
"code": "LEASE_EXPIRED",
"retryable": true,
"resign": "SAME_BYTES",
"hint": "If `details.renewable` is true, renew the lease and resend the same signed bytes. Otherwise assign again and sign once more."
}
See the error model for what each member means and how to handle unknown codes.