email_not_cancellable
The operation does not apply at the message's current point in its lifecycle. Cancelling and rescheduling work only before a message is sent. Resending works only after it has been sent or has failed.
Status: 409
{
"status": 409,
"type": "email_not_cancellable",
"message": "can only reschedule emails that have not been sent",
"request_id": "req_01J8K2P...",
"doc_url": "https://docs.epostix.com/errors/email_not_cancellable"
}
Why you got this
- You cancelled or rescheduled a message that had already gone out.
messagereadscan only reschedule emails that have not been sent. - You resent a message that is still scheduled or still in flight.
messagereadscan only resend emails that have been sent or failed. - The scheduled time arrived while your request was in flight, so the message left the scheduled state between your read and your write.
How to fix it
Read the message first and act on the status you get back, rather than on the status you
stored earlier. Treat a 409 as the state having moved on: re-read the message, then choose
the operation that matches where it now is.
A sent message cannot be pulled back. If the content was wrong, suppress or correct the downstream data and send a new message. Resend repeats the same content to the same recipient, so it recovers a failure rather than replacing a mistake.
Is it safe to retry
No. The lifecycle does not run backwards, so the identical call fails identically. Re-read the message, then send the operation its current state allows.