From 0df6c3878411bba9ff50bacd31e1b7e29bdda47b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20P=C3=A9rez?= Date: Mon, 11 May 2026 02:02:31 -0600 Subject: [PATCH] Fix chat message and photo sending - Remove broken transformRequest that crashed with Axios 1.x (headers.post undefined) - Guard window.Echo.socketId() to avoid TypeError before socket connects - Wrap broadcast() in try/catch so Reverb downtime does not cause 500 errors Co-Authored-By: Claude Sonnet 4.6 --- app/Http/Controllers/ChatController.php | 6 +++++- resources/views/chat/show.blade.php | 14 ++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/ChatController.php b/app/Http/Controllers/ChatController.php index f460820a..0e3eaee5 100644 --- a/app/Http/Controllers/ChatController.php +++ b/app/Http/Controllers/ChatController.php @@ -99,7 +99,11 @@ class ChatController extends Controller $message->load('sender'); - broadcast(new MessageSent($message))->toOthers(); + try { + broadcast(new MessageSent($message))->toOthers(); + } catch (\Exception $e) { + \Log::warning('Chat broadcast failed: ' . $e->getMessage()); + } $message->created_at = $message->created_at->format('H:i'); diff --git a/resources/views/chat/show.blade.php b/resources/views/chat/show.blade.php index 5dfef981..a7634218 100644 --- a/resources/views/chat/show.blade.php +++ b/resources/views/chat/show.blade.php @@ -156,14 +156,12 @@ if (chatForm) { } const data = new FormData(form); - axios.post('{{ route("chat.send") }}', data, { - headers: { 'X-Socket-ID': window.Echo.socketId() }, - transformRequest: [(formData, headers) => { - delete headers.post['Content-Type']; - delete headers['Content-Type']; - return formData; - }] - }).then(response => { + const socketId = (window.Echo && window.Echo.socketId) ? window.Echo.socketId() : null; + const reqHeaders = {}; + if (socketId) reqHeaders['X-Socket-ID'] = socketId; + + axios.post('{{ route("chat.send") }}', data, { headers: reqHeaders }) + .then(response => { appendMessage(response.data, true); scrollBottom(); form.reset();