#17571·langfuse

bug: Tracing search bar duplicates text and gets stuck with Korean IME (SearchComposer)

Author: jywnCreated Sep 17, 2026Updated Sep 17, 2026
Labelsbug🐞❔ unconfirmed bugfeat-tracing

Describe the bug

Typing Korean into the Tracing search bar duplicates every syllable, leaves a pill that cannot be deleted, and Backspace stops working.

https://github.com/user-attachments/assets/4ebddbfd-552c-4210-99f7-9e6b3b984df2

Not covered by #17130 that PR fixes SearchInput.tsx. but this bar is SearchComposer.tsx. Related: #15072.

Steps to reproduce

  1. Open Tracing with an empty search bar (macOS, Chrome, Korean IME)
  2. Type any Korean characters, press Backspace, type any Korean characters.
  3. Bar shows broken, unreadable words + the extra text cannot be deleted

Langfuse Cloud or self-hosted?

Langfuse Cloud

If self-hosted, what version are you running?

No response

SDK and integration versions

n/a (UI bug). macOS 15.6.1, Chrome 152.0.7977.83, Korean 2-set IME

Additional information

As I'm backend engineer(not familiar with front-end technical issues), I've used my agent with harness to track this problem and here is the answer from him(just for reference) ============= BY AGENT ============ Two causes, both seen in DOM snapshots:

  1. Empty bar: the IME creates a text node React doesn't own. syncFromDom / commit read it via textContent and render a token next to it, so text doubles; delete is state-based, so that node never goes away.
  2. Space between pills: the IME writes into the whitespace text node from renderPlainText. React still thinks it's " ", so it never rewrites it.

Possible fix (~20 lines): render plain-text parts as <span>, remove non-element root children in syncFromDom/commit, and remount tokens with a key bumped per composition. I verified this on a small React model with CDP-driven IME input and can open a PR. A repro script that needs no IME is attached.

Are you interested in contributing a fix for this bug?

No