Compare commits

...
Author SHA1 Message Date
Sonarly Claude Code 47346299cf fix(server): validate widget existence before upsert and return descriptive error with widget ID
https://sonarly.com/issue/28851?type=bug

The `upsertFieldsWidget` mutation throws `FIELDS_WIDGET_NOT_FOUND` because the widget ID sent by the frontend (`1f226f91-0064-4408-9936-892bfbff3b7f`) does not exist in the server's `flatPageLayoutWidgetMaps` cache. The error occurred 12 seconds after server startup following the v1.23.5 deployment, which introduced significant changes to page layout widgets (isActive flag, overridable entity deactivation logic, SSE fixes). The user's browser session held a stale widget ID from before the deployment, and when they saved, the backend's freshly-computed cache (post-workspace-migration) no longer contained that widget under the same ID or universal identifier mapping.
2026-04-20 03:07:59 +00:00
@@ -6,6 +6,7 @@ import { fieldsWidgetGroupsDraftComponentState } from '@/page-layout/states/fiel
import { fieldsWidgetGroupsPersistedComponentState } from '@/page-layout/states/fieldsWidgetGroupsPersistedComponentState';
import { fieldsWidgetUngroupedFieldsDraftComponentState } from '@/page-layout/states/fieldsWidgetUngroupedFieldsDraftComponentState';
import { fieldsWidgetUngroupedFieldsPersistedComponentState } from '@/page-layout/states/fieldsWidgetUngroupedFieldsPersistedComponentState';
import { pageLayoutDraftComponentState } from '@/page-layout/states/pageLayoutDraftComponentState';
import { useMutation } from '@apollo/client/react';
import { useStore } from 'jotai';
import { useCallback } from 'react';