potential bogus warning from garcon_gtk_menu_get_desktop_actions_menu if action is missing.
Is it really a critical condition if no action exists?
I think a simple if (!action) return NULL;
would do.
(xfce4-panel:1476): garcon-CRITICAL **: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed
(gdb) p *item->priv
$3 = {file = 0x5594b770c2c0, desktop_id = 0x0, categories = 0x5594b771f260, keywords = 0x0, requires_terminal = 0, no_display = 0,
supports_startup_notification = 1, name = 0x5594b79315f0 "Terminal Emulator", generic_name = 0x0, comment = 0x5594b7922fa0 "Use the command line",
command = 0x5594b76be7e0 "exo-open --launch TerminalEmulator", try_exec = 0x0, icon_name = 0x5594b76be7b0 "org.xfce.terminalemulator",
only_show_in = 0x5594b795cfc0, not_show_in = 0x0, path = 0x0, actions = 0x0, hidden = 0, num_allocated = 0}
#1 0x00007faa3963981f in __GI_abort () at abort.c:100
#2 0x00007faa29be80e8 in garcon_gtk_menu_get_desktop_actions_menu (item=item@entry=0x5594b78503c0) at garcon-gtk-menu.c:1191
#3 0x00007faa28b5a080 in launcher_plugin_button_update_action_menu (plugin=0x5594b787e420) at launcher.c:1918
#4 0x00007faa28b5b1dd in launcher_plugin_set_property (object=0x5594b787e420, prop_id=<optimized out>, value=<optimized out>, pspec=<optimized out>)
at launcher.c:871
#5 0x00007faa3a24172e in g_object_setv () from /usr/lib64/libgobject-2.0.so.0
....