# Twilio RCS unconfirmed-delivery error code changed from 30036 to 30046

- **Provider:** Twilio
- **Endpoint:** `GET /2010-04-01/Accounts/{AccountSid}/Messages**`
- **Effective:** 2026-08-10
- **Severity:** medium
- **Change:** enum-added
- **Status:** verified

## What changed

Since August 10, 2026, an RCS message that cannot be delivered to an unreachable device fails with error code 30046 (Message delivery not confirmed) instead of 30036 (Validity Period Expired). Custom SMS failover logic that checks error_code or ErrorCode for 30036 no longer fires; Twilio's native SMS fallback is not affected.

## What to do

Wherever you branch on error_code (Message resource; errorCode in the Node.js SDK) or ErrorCode (status callbacks) to trigger SMS failover for RCS, treat 30046 the same as 30036, and test the fallback path.

## Sources

- Provider notice (2026-07-09): https://www.twilio.com/en-us/changelog/rcs-error-code-changing
- https://www.twilio.com/docs/messaging/api/message-resource

## Machine-readable

- Advisory: https://github.com/SriVarshini09/shapi-advisories/blob/main/advisories/twilio-rcs-undelivered-error-code-30046.json
- OSV: https://shapi.dev/osv/twilio-rcs-undelivered-error-code-30046.json
