Gudu PHP backend hotfix, 2026-09-30 night: customer's first chat message says "Not sent. Tap to retry"

WHAT WAS HAPPENING (confirmed from the live database export of 30 Sep, 11:14 PM)
Salome (user 70) and her driver Nwora Emmanuel (user 69), deliveries 34, 35 and 38:
  - she pays, opens the chat, sends a message
  - the server CREATES the chat for that delivery (conversations row exists from that moment)
  - then fails before it records who is in the chat or saves her message -> "Not sent"
  - the driver's reply finds the chat already there, skips that step, and saves fine
Every chat between them shows this: created seconds or minutes before the first message
that actually saved. The customer is almost always first to write after paying, which is
why it looked like "the customer can't send but the driver can".

Cause: helpers/messages_shared.php re-ran the same database statement to read back the chat
it had just created. On the live server that leaves the connection half-read, and the next
database step fails ("2014 Cannot execute queries while other unbuffered queries are
active", which is also in the server's logs/app.log).

It was NOT the old one-chat-per-pair index: that is already gone from the live database
(checked with SHOW INDEX), so db/conversations_drop_pair_index.sql has nothing left to do.
It is included only so the self-check stays in one place.

WHAT TO UPLOAD (replace the existing files)
  helpers/messages_shared.php      the fix for the chat problem above
  helpers/delivery_code_service.php  same pattern when creating pickup/delivery codes
  helpers/refund_service.php       same pattern when creating a wallet during a refund
No database changes. No app update needed.

HOW TO CHECK IT WORKED
On the next paid delivery, the customer's first message should send on the first try.
