{"record":{"id":"7cc8ed5d78f6f134","repo":"marmelab/react-admin","slug":"the-formgroupcontextprovider-can-only-be-used-insi","errorCode":null,"errorMessage":"The FormGroupContextProvider can only be used inside a FormContext such as provided by the SimpleForm and TabbedForm components","messagePattern":"The FormGroupContextProvider can only be used inside a FormContext such as provided by the SimpleForm and TabbedForm components","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"packages/ra-core/src/form/groups/FormGroupContextProvider.tsx","lineNumber":65,"sourceCode":" * @param {ReactNode} props.children The form group content\n * @param {String} props.name The form group name\n */\nexport const FormGroupContextProvider = ({\n    children,\n    name,\n}: {\n    children: ReactNode;\n    name: string;\n}) => {\n    const formGroups = useFormGroups();\n\n    useEffect(() => {\n        if (\n            !formGroups ||\n            !formGroups.registerGroup ||\n            !formGroups.unregisterGroup\n        ) {\n            console.warn(\n                `The FormGroupContextProvider can only be used inside a FormContext such as provided by the SimpleForm and TabbedForm components`\n            );\n            return;\n        }\n        formGroups.registerGroup(name);\n\n        return () => {\n            formGroups.unregisterGroup(name);\n        };\n    }, [formGroups, name]);\n\n    return (\n        <FormGroupContext.Provider value={name}>\n            {children}\n        </FormGroupContext.Provider>\n    );\n};\n","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/marmelab/react-admin/blob/051f511bb0afb5ea565c2d3728bf4dab0a6fa5e0/packages/ra-core/src/form/groups/FormGroupContextProvider.tsx#L47-L83","documentation":"FormGroupContextProvider registers a field group through the FormGroupsContext created by SimpleForm/TabbedForm. When rendered outside such a Form context, formGroups (with registerGroup/unregisterGroup) is undefined, so the provider cannot register the group and warns that it is being used incorrectly.","triggerScenarios":"Rendering <FormGroupContextProvider name=\"x\"> outside any <SimpleForm> or <TabbedForm>, or inside a form that doesn't supply FormGroupsContext (e.g. raw react-hook-form <form> or a custom form without FormGroupsProvider).","commonSituations":"Reusing FormGroupContextProvider in storybook demos or custom forms; using it with a plain <form> after migrating from TabbedForm; forgetting the outer form component when refactoring.","solutions":["Wrap the provider inside a <SimpleForm> or <TabbedForm>.","If using a custom form, add FormGroupsProvider (or supply the FormGroupsContext value with registerGroup/unregisterGroup) yourself.","Remove FormGroupContextProvider if grouping is not actually needed."],"exampleFix":"// before\n<form>\n  <FormGroupContextProvider name=\"address\">\n    <TextInput source=\"city\" />\n  </FormGroupContextProvider>\n</form>\n// after\n<SimpleForm>\n  <FormGroupContextProvider name=\"address\">\n    <TextInput source=\"city\" />\n  </FormGroupContextProvider>\n</SimpleForm>","handlingStrategy":"type-guard","validationCode":"// Ensure FormGroupContextProvider is always rendered inside a form that provides FormGroupsContext\nconst MyPage = () => (\n  <SimpleForm>\n    <FormGroupContextProvider name=\"contact\">...</FormGroupContextProvider>\n  </SimpleForm>\n);","typeGuard":"const hasFormGroups = (ctx) => Boolean(ctx && ctx.registerGroup && ctx.unregisterGroup);\n// check via useFormGroupContext consumer before rendering children","tryCatchPattern":null,"preventionTips":["Only use FormGroupContextProvider inside SimpleForm or TabbedForm.","For custom forms, add FormGroupsProvider to supply the groups context.","Cover custom form layouts with a dev-mode test that renders the provider and asserts no console.warn."],"tags":["forms","context","react-admin"],"backgroundTag":"context-provider-outside-form","analyzedSha":"051f511bb0afb5ea565c2d3728bf4dab0a6fa5e0","analyzedAt":"2026-08-30T02:28:14.926Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}