Skip to main content

What are the known limitations of the Rich Text Editor?

Common issues with Bubble's Rich Text Editor: Enter key on Android (GBoard), data source value sync, and URLs with colons breaking links.

Written by Sofia Maconi

Bubble's Rich Text Editor has a few known limitations — some from the underlying editor library, others from how certain browsers and keyboards interact with rich text inputs. Here's what you might run into and how to handle each case.

Pressing Enter on Android (GBoard) doesn't create a new line

On Android devices using Google's GBoard keyboard, pressing Enter in the Rich Text Editor doesn't move the cursor to a new line. This is a known bug in GBoard's handling of rich text inputs — Bubble can't fix it on its end.

What you might notice:

  • Pressing Enter on an Android device with GBoard doesn't create a new line in the Rich Text Editor

  • The cursor stays in place instead of moving down

Workaround: Tap on the next line with your finger to move the cursor there instead of using the Enter key.

The value doesn't update when the data source changes

When a Rich Text Editor's data source changes without the element being reinitialized, its internal value doesn't update to reflect the new content. The displayed text may look correct, but the underlying value the RTE reports — for example, when checking whether content has changed — still reflects the previous data source.

What you might notice:

  • The RTE displays new content after a data source change, but its current value still reflects what was previously displayed or edited

  • Pasting back the original text after a data source change isn't detected as a change by the RTE

  • Conditions or workflows that check whether the RTE's value has changed behave unexpectedly

Workaround: Trigger a reinitialization of the RTE element whenever its data source changes. This forces the element to sync its internal value with the new content.

URLs with colons in dynamic expressions render incorrectly

When you insert a URL containing a dynamic expression into the Rich Text Editor, Bubble uses BBCode to encode it. If the dynamic expression includes a colon (e.g. a "type:value" format), the BBCode parser treats everything before the colon as a protocol and flags the URL as invalid — then prepends the current page URL to it, producing a broken link.

What you might notice:

  • A link in the Rich Text Editor renders with the wrong URL, prefixed with the current page's address

  • The issue occurs when the dynamic expression used in the link contains a colon character

  • The link looks correct in the editor but breaks when rendered

Workaround: Avoid using dynamic expressions that contain colons directly inside Rich Text Editor links. Instead, construct the full URL outside the RTE — for example, in a workflow or custom state — so it's fully resolved before being inserted.

Did this answer your question?