From 07e1c4186af988bfaa552cd7b1194aa5e1b1993d Mon Sep 17 00:00:00 2001 From: "Enot (ded) Skelly" Date: Wed, 27 May 2026 10:44:29 -0700 Subject: [PATCH] fix: handle malformed utf8 emoji meshcore allows weird stuff, replace malformed 4 byte sequences with standard uFFFD --- internal/ingest/ingest.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/ingest/ingest.go b/internal/ingest/ingest.go index 42174f7..057aaf1 100644 --- a/internal/ingest/ingest.go +++ b/internal/ingest/ingest.go @@ -550,7 +550,7 @@ func (w *Worker) handleStatus(ctx context.Context, pubkeyHex string, raw []byte) } params.ObserverType = inferObserverType(envelope.ObserverType, envelope.SoftwareVersion) if envelope.DisplayName != "" { - params.DisplayName = envelope.DisplayName + params.DisplayName = strings.ToValidUTF8(envelope.DisplayName, "\uFFFD") } if envelope.HardwareModel != "" { params.HardwareModel = envelope.HardwareModel @@ -657,7 +657,7 @@ func (w *Worker) handlePayloadTypeSideEffects(ctx context.Context, packet *meshc } params := UpsertNodeParams{ PublicKey: advert.PublicKey.PublicKeyBytes(), - Name: advert.AppData().Name, + Name: strings.ToValidUTF8(advert.AppData().Name, "\uFFFD"), NodeType: advert.Type(), Latitude: lat, Longitude: lon,