Description: I have encountered a severe structural bug regarding how Native Forms handle payloads when writing to tables that have Row Owners enabled. This results in silent data loss and complete bypass of the ‘Required’ constraint on Choice Components.
Context & Setup:
-
I am using a Native Form (Add or Edit) to write data to a standard Glide Table.
-
The destination table has the Make Row Owner feature enabled on specific columns (e.g.,
admin_access,docente_access). -
The Row Owner tokens (the strings granting access) are expected to be populated upon row creation (via Default Values, User Profile values, or computed columns).
-
The form contains a Choice Component pointing to a basic Text column, strictly set as Required.
Expected Behavior: Upon clicking ‘Submit’, Glide should execute a single, atomic transaction. The row should be created, the Row Owner tokens should be applied, and the Choice Component’s selected value should be saved to the database. The ‘Required’ flag should prevent any null submissions.
Actual Behavior (The Bug): Glide fails to process the insertion as an atomic transaction. This causes a race condition:
-
The row is instantly created.
-
The Row Owner security rule triggers before the entire form payload (specifically the Choice Component string) is fully committed to the database.
-
Because the Row Owner rule locks the row, the system suddenly treats the user as lacking write permissions for that specific fraction of a second.
-
The Choice Component’s data insertion is rejected by the server.
-
The UI performs an “optimistic revert” (the selected option flashes and disappears), and the database records a
nullvalue for that column.
Why this is critical:
-
The form completely ignores the Required constraint, allowing incomplete records into the database.
-
The system fails silently. There is absolutely no error message displayed to the user on the frontend, making it a nightmare to debug.
This forces developers to completely abandon Native Forms and build Custom Forms just to ensure data integrity when dealing with multiple roles/Row Owners. Please look into how Native Forms serialize and commit payloads when Row Owners are involved.
On a personal note, this is ridiculous. Fix this asap, for your own good.