The unstable_cache approach bypassed throwIfActionForbiddenAsync and dropped user-specific data (permissions, collapse states). Use React cache() to deduplicate getInitialBoard within a single request instead, preserving auth checks and all user data while reducing DB calls from 9 to 3 per board page load.