Pending Messages are stuck

Using v3.1.18 APi with cache enabled.
After sending a bunch of messages when network is down, when querying the SBDMessageCollection object using the getFailedMessages() and getPendingMessages() I get some of each.
When connection is restored, I send the failed messages with the SBDChannel object resendUserMessage() API, but the pending messages are stuck. I can get them, but not resend them, and they’re not sent automatically. What am I missing?