Environment:
- Frappe: 16.18.3
- ERPNext: 16.19.1
- HRMS: 16.7.0
- Docker (custom app: velocv)
Problem:
A custom workspace “VeloOnboarding” (app=velocv, module=VeloOnboarding) is
returned by get_workspace_sidebar_items and appears in
frappe.boot.allowed_workspaces, but does NOT appear as a card on the home
desk grid.
A second workspace “VeloRH” (same app=velocv, module=Veloc) DOES appear
correctly as an orange icon on the home grid.
What we confirmed in DB:
- name: VeloOnboarding
- app: velocv
- module: VeloOnboarding
- public: 1
- is_hidden: 0
- parent_page: “Home” (tried “” as well, same result)
- for_user: “” (tried null as well, same result)
- content: valid JSON with header + shortcut blocks
What we tried:
- parent_page = “” → not showing
- parent_page = “Home” → not showing
- for_user = null → not showing
- for_user = “” → not showing
- Created Module Def “VeloOnboarding” with a dummy DocType (read permission
for Architect/Trainee roles) → module appears in allowed_modules
but
workspace still not showing on home - bench clear-cache, localStorage.clear(), hard refresh → no change
- frappe.boot.allowed_workspaces includes VeloOnboarding

The workspace IS accessible via direct URL:
/desk/workspace/VeloOnboarding
“Add to Desktop” button throws: “Nombre duplicado: Barra lateral del espacio
de trabajo VeloOnboarding ya existe”
Question:
What additional configuration is required for a custom workspace to appear
as a home grid card, beyond what’s documented? Is there a known difference
in behavior between the first workspace of an app (which shows) and
subsequent workspaces (which don’t)?
Related issue: Workaround: Workspaces not showing?