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.
