I'm sending messages with a time-to-live but they don't arrive?
The clocks are not in synch between the client and the server. e.g. Your client thinks it is 10 O'clock but the server thinks it is 11 O'clock. Sending a message with a ttl of less than one hour will mean the server expires the message immediately.
Obviously, the reverse could be true and messages don't get expired when expected.