I ran into a frustrating quirk today and wanted to share it—and see if anyone else has been caught by this.
Setup:
I have a [Licence Type] column. Its Valid_If uses a SWITCH() statement to generate a dynamic list of dropdown choices based on a selected [Server ID].
Valid If for Licence Type:
IF(
[User ID].[User Type] = “User”,
SWITCH(
[Server ID],
“dc03ba07”,
LIST(“Viewer”),
“0fc23e7c”,
LIST(“Editor”, “Viewer”),
“fdc6e5ff”,
LIST(),
LIST(“Owner”, “Editor”, “Viewer”)
),
LIST(“Owner”, “Editor”, “Viewer”)
)
For one specific server (Server ID: fdc6e5ff), the logic intentionally evaluates to LIST() (an empty list) because standard users shouldn’t have any valid license options for that server. The [Licence Type] column also has Required_If and Show_If checked.
Issue:
Instead of displaying an empty field and throwing a validation error, AppSheet auto-hides the column entirely.
Because the system hides it, it treats the field as “not applicable.” This completely bypasses the Required_If rule, allowing the user to save the form—resulting in a broken record with a blank [Licence Type].