Driftwatch

Cloudflare / Cloudflare API /

Breakingdirection flip: their tools call this safe

message can now return "email.sending.error.email.account_suspended"

What changed

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

Affects errors[].message on POST /accounts/{account_id}/email/sending/send.

New value: email.sending.error.email.account_suspended.

can now return "email.sending.error.email.account_suspended"

Who is affected

Code that reads POST /accounts/{account_id}/email/sending/send (errors[].message).

Before and after

WhereBeforeAfter
POST /accounts/{account_id}/email/sending/send · errors[].message"email.sending.error.email.sender_not_configured", "email.sending.error.email.sending_disabled""email.sending.error.email.account_suspended", "email.sending.error.email.sender_not_configured", "email.sending.error.email.sending_disabled"
POST /accounts/{account_id}/email/sending/send_raw · errors[].message"email.sending.error.email.sender_not_configured", "email.sending.error.email.sending_disabled""email.sending.error.email.account_suspended", "email.sending.error.email.sender_not_configured", "email.sending.error.email.sending_disabled"

Code that breaks

switch (response.errors[0].message) {
  // existing branches …
  // no branch for "email.sending.error.email.account_suspended"
  default:
    throw new Error("unexpected message");
}

Based on Cloudflare’s published API specification. How severity is decided.