Affected area
Media uploads (voice notes, recordings, photos) on FiveM for GTAV Enhanced
Framework
QBCore/QBox
What's broken
Environment
sd-phone 1.0.5, QBox, FiveM for GTAV Enhanced (server and client current as of 2026-09-27).
What happens
Voice notes and recordings sit on "sending" for about 60 seconds and then go through. The NUI's POST
to http://<endpoint>/sd-phone/... (the slot client/uploadurl.lua completes) never reaches the
server: no error in the NUI, nothing in the server log, the request just stays open. When
SLOT_TTL = 60 (server/media/httpUpload.lua) expires, the phone falls back to the event route,
which works.
It looks like the same Enhanced limitation that breaks screencapture's http protocol: the NUI can't
reach its own server's HTTP handler. It's probably not a bug in sd-phone, but the phone waits out the
full TTL before it gives up.
Workaround we run
client/uploadurl.lua answers { success = false, code = 'unavailable' } up front, so the event
route runs straight away with the same server-side budget and checks. Voice notes send at once, and
5 back to back all went through.
Suggestion
Detect Enhanced (or a failed first HTTP attempt) and skip the HTTP route, or use a much shorter
client-side timeout before falling back. Side effect today: each send still mints an HTTP slot the
client never uses (MAX_SLOTS_PER_PLAYER = 3, 60 s TTL).
Unrelated nit
server/main.lua:128 says the roadphone kill switch is sd_phone_roadcompat, but the shim reads
sd_phone_roadphonecompat (server/compat/roadphone/init.lua:6, client/compat/roadphone.lua:20).
Steps to reproduce
- Enhanced client, direct upload on.
- Record a voice note in Messages and send it.
- It stays on "sending" for ~60 s, then sends.
Console errors / logs
Screenshots or clips
No response
Affected area
Media uploads (voice notes, recordings, photos) on FiveM for GTAV Enhanced
Framework
QBCore/QBox
What's broken
Environment
sd-phone 1.0.5, QBox, FiveM for GTAV Enhanced (server and client current as of 2026-09-27).
What happens
Voice notes and recordings sit on "sending" for about 60 seconds and then go through. The NUI's POST
to
http://<endpoint>/sd-phone/...(the slotclient/uploadurl.luacompletes) never reaches theserver: no error in the NUI, nothing in the server log, the request just stays open. When
SLOT_TTL = 60(server/media/httpUpload.lua) expires, the phone falls back to the event route,which works.
It looks like the same Enhanced limitation that breaks screencapture's
httpprotocol: the NUI can'treach its own server's HTTP handler. It's probably not a bug in sd-phone, but the phone waits out the
full TTL before it gives up.
Workaround we run
client/uploadurl.luaanswers{ success = false, code = 'unavailable' }up front, so the eventroute runs straight away with the same server-side budget and checks. Voice notes send at once, and
5 back to back all went through.
Suggestion
Detect Enhanced (or a failed first HTTP attempt) and skip the HTTP route, or use a much shorter
client-side timeout before falling back. Side effect today: each send still mints an HTTP slot the
client never uses (
MAX_SLOTS_PER_PLAYER = 3, 60 s TTL).Unrelated nit
server/main.lua:128says the roadphone kill switch issd_phone_roadcompat, but the shim readssd_phone_roadphonecompat(server/compat/roadphone/init.lua:6,client/compat/roadphone.lua:20).Steps to reproduce
Console errors / logs
Screenshots or clips
No response