sms

Incoming Sms

Forward one text message to the mailbox that has always received them.

ALWAYS ANSWERS 200 ONCE THE REQUEST IS AUTHENTIC. Plivo retries a non-2xx, and a retry would resend the SAME message every time the mail path recovered -- so a forwarding failure is logged loudly and acknowledged, because a mailbox holding six copies of one text is worse than a mailbox missing it and an error in the log.

⛔THAT PROMISE WAS FALSE FOR ONE PATH, until this build task (2026-09-22). email_out.send_email only logs when a send fails PERMANENTLY (is_permanently_undeliverable matched); an ordinary TRANSIENT failure (a SendGrid timeout, a 5xx) returns SendOutcome(claimed=True, sent= False) with nothing logged anywhere, and this route's own except Exception above never fires for it because send_email had already caught the error itself. The only thing that happened, on the vendor's machine and in this one's memory both, was logger.info("...forwarded a text...") -- a log line asserting success for a message that never left. A text that failed to forward during any transient mail outage was therefore indistinguishable from one that forwarded cleanly: 200 to Plivo (correct -- see above), an info log claiming delivery (wrong), and nothing durable a human could ever have found short of reading send_receipts by hand. Fixed below by branching on SendOutcome.sent BEFORE assuming success, and by SendOutcome.permanent (not a string match at this call site) for whether the retry the next text's own attempt provides is worth waiting on.

post/api/sms/incoming

Request

  • Base URL: https://api.pigeonly.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.pigeonly.com/api/sms/incoming
  • Auth: none declared

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.