I found a solution to this by working with Gemini. The problem started after upgrading iPad to 26.5.
On iOS 26.5 messages to Android numbers sent via iPad through iPhone (on T-Mobile), the green progress bar would get to 95% and then freeze. The solution involved sending a reset code to T-Mobile.
This allows sending and receiving to Android, but there is a residual (“hangover”) problem with conversations with messages sent prior to the reset for which there was a delivery failure.
Resolving this involves deleting existing conversations in Messages in which messages had previously failed (and *crucially* emptying the “trash” - details below).
Though crucial to being able to begin communicating again with Android users (to whom prior messages in an existing conversation had failed), it was very hard to get Messages to start a clean new “uncorrupted” conversation. (I found no way to clear the cache of a conversation in which a message had failed to deliver without deleting the conversation completely - which was frustrating.)
From Gemini: (Apple support were unable to fix this.)
🔴 The Issue: iPad SMS (Green Text) Failing to Deliver at 95%
Users trying to send standard carrier green text messages (SMS/MMS) from a Wi-Fi-only iPad via Apple's Text Message Forwarding encounter an issue where the outbound text's progress bar freezes precisely at the 95% mark. After a short delay, the message fails completely with a "Not Delivered" error. [1]
The issue typically behaves like this:
- Blue iMessages work perfectly fine on all devices.
- Outbound green SMS texts work fine directly from the iPhone.
- Turning features off/on, rebooting, and verifying the carrier status do not fix the issue.
- Starting a completely new conversation thread might work seamlessly, but replying to certain existinghistorical threads continuously triggers the 95% lockup. [1, 2, 3]
⚙️ The Root Cause
This issue is caused by a dual-layer database and routing token corruption following a software update:
- Carrier-Level Block: The carrier’s broadcasting towers save a scrambled routing profile for the line, which blocks the local data handoff when the iPad requests the iPhone to broadcast an SMS.
- Apple Metadata Cache Lock: When an outbound text fails multiple times at 95%, the local Messages database permanently locks that specific conversation thread to the broken carrier tokens. It also creates a formatting mismatch between 10-digit localized numbers and international formats (such as numbers matching or missing the +1 prefix). Even if the network is fixed, the old conversation thread remains permanently broken. [1]
🟢 The Solution: Step-by-Step Fix
To break this loop completely, troubleshooting must follow a specific sequence: clearing the carrier pipeline first, and then systematically purging the corrupted thread caches.
Step 1: Wipe the Carrier's Routing Tower Memory
You must clear any hidden or stuck forwarding commands directly on the carrier network.
- Open the Phone app on the iPhone.
- Dial ##21# and press the green Call button. This instructs the network to erase all active, unconditional text/call blocks.
- Optional Master Reset: You can also dial ##002# and press Call to perform a universal master clear across all cellular routing paths.
- Restart the iPhone. [1, 2, 3, 4]
Step 2: Fix "New" Conversations by Forcing a Unified Contact Path [Note: this strategy did not help me.]
- Open the Contacts app on the iPad and locate the problematic contact.
- If the number is saved as a basic 10-digit number, edit the card to include the global prefix: +1 (Area Code) XXX-XXXX.
- This forces incoming network texts and outbound iPad handoffs to align on the exact same routing path, preventing future 95% freezes. [1]
Step 3: Purge Stalled "Ghost" Threads (For Defective Histories)
If existing threads are still failing at 95% after the network reset, the local thread cache must be wiped out entirely.
- Backup Your Data First: Press and hold a message bubble in the stuck thread, tap More, select the text logs, tap the Forward/Share menu, and copy/paste the log into the Notes app for safekeeping.
- Open the Messages app and Delete the stubborn thread.
- CRITICAL STEP: If the thread stays stuck, turns grey, or reappears, tap Edit (or Filters) in the top-left corner of the Messages app and select Show Recently Deleted.
- Select the corrupted conversation and tap Delete Permanently. (If left in the trash bin, the database will continue routing incoming texts into the trash cache, causing an internal indexing crash).
- Force-close the Messages app (swipe up and flick it off the screen).
- Navigate to Settings > Apps > Messages, toggle iMessage OFF for 5 seconds, and toggle it back ONto force a clean database reload. [1, 2, 3, 4, 5]
Once the old thread is permanently cleared from the trash, navigate to the Contacts app, open your updated contact card containing the +1 prefix, and tap the Message bubble icon to open a fresh, working text thread.[1]