Possible IME Bug: Vietnamese typing issue with UniKey in NocoBase v2.0.8 form inputs (worked correctly in v1

Environment

  • NocoBase version: v2.0.8
  • Previous version: v1.x → No issue
  • Browsers:
    • Chrome → affected
    • Edge → affected
  • OS: Windows
  • Vietnamese input method: UniKey (Telex, Unicode)

Summary

This appears to be an IME bug / IME composition issue introduced in v2 .

Vietnamese typing using UniKey (Telex) worked correctly in NocoBase v1 , but after upgrading to v2.0.8 , form inputs started breaking during fast typing.

The issue looks very similar to a React controlled input IME bug , where the input may be re-rendered while the IME composition is still in progress.

Issue Description

When typing Vietnamese using UniKey inside NocoBase form fields, Vietnamese accents are incorrectly applied if typing quickly. In some cases, the text cursor (caret ) unexpectedly jumps.

For example, when trying to type:

Bùi Tuấn Anh

It may incorrectly become:

Bui Tuân Anh

Easy Reproduction Example

Typing:

aas

Expected result:

Actual result:

  • only â appears
  • the text cursor unexpectedly jumps to the end of the input
  • the accent key (s ) is not applied to the currently composing character

Another example:

Typing:

Tuaans

Expected result:

Tuấn

Actual result may become:

Tuân

Conditions Under Which the Issue Occurs

  • Typing quickly → issue occurs
  • Typing slowly → works correctly
  • Pasting Vietnamese text → works correctly
  • Markdown editor → works correctly (opens a separate editor)
  • Single line text field → affected
  • Long text field → also affected

This strongly resembles a classic IME composition bug :

  • IME breaks during fast composition
  • multi-step Telex combinations fail (aa + s , aw + s , etc.)
  • caret position resets unexpectedly

Important Difference Between Versions

NocoBase v1:
:white_check_mark: Vietnamese typing works normally.

NocoBase v2.0.8:
:x: Vietnamese typing breaks during fast input.

This strongly suggests a regression introduced in v2 , possibly related to:

  • form rendering
  • controlled inputs
  • Formily behavior
  • IME composition handling
  • React rendering lifecycle

Investigation Performed

Not browser-specific

Tested on:

  • Chrome
  • Edge

→ Same issue occurs in both browsers.

Not tied to a specific schema/form

Tested:

  • Completely new collection with only one text field → issue still occurs
  • Completely new page → issue still occurs
  • New form with only one input field → issue still occurs
  • No collection workflow bound
  • No linkage rules enabled

No network requests during typing

Checked DevTools → Network:

  • No repeated API requests while typing.

Technical Observation

In DevTools Console, this event is triggered on every keypress:

[FlowModel] dispatchEvent: uid=xxxx, event=formValuesChange

Example:

[FlowModel] dispatchEvent: uid=4cbc7ebb14c, event=formValuesChange, isFork=false, cleanRun=true, targetIsFork=false

This suggests that formValuesChange is dispatched on every keystroke.

It is possible that form state updates or re-renders are interrupting IME composition events (compositionstart , compositionend ), causing:

  • IME state loss
  • incorrect Vietnamese accents
  • caret jump / cursor moving to the end
  • broken Telex composition

Suspected Root Cause

Potential IME bug / IME composition regression in v2 involving:

  • React controlled inputs
  • Formily
  • Ant Design Input/TextArea
  • IME composition handling
  • formValuesChange re-renders
  • caret position reset during composition

Since the exact same typing workflow worked correctly in v1 and fails in v2.0.8 , this appears to be a v2 regression affecting IME input behavior .

Additional Note – Reproducible IME Composition Patterns

I found several deterministic reproduction patterns that may help identify the IME bug.

Environment

  • NocoDB: v2.0.8
  • OS: Windows
  • IME: Unikey telex

Reproduction Steps

  1. Open any text field in NocoDB
  2. Type using Unikey telex input method

Telex Composition Test Cases

Case Input Expected Actual Result Notes
1 tuaasn tuấn tuấn :white_check_mark: Correct Works as expected
2 tuaans tuấn tuân :x: Wrong Missing acute accent (sắc)
3 aaa aa a :x: Wrong One character unexpectedly removed
4 aww aw w :x: Wrong Intermediate composition state appears lost
5 oww ow w :x: Wrong Intermediate composition state appears lost

Observed Pattern

A reproducible pattern appears during fast IME composition:

  • tuaasn → works correctly
  • tuaans → fails
  • repeated composition keys (aaa, aww, oww) behave unexpectedly

This suggests the IME composition state may be interrupted before completion.

Thank you for your feedback. This is a known issue. Please wait for us to fix it.

1 Like