1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([["2210"],{63812(e,t,i){i.r(t),i.d(t,{metadata:()=>n,default:()=>u,frontMatter:()=>o,contentTitle:()=>a,toc:()=>s,assets:()=>c});var n=JSON.parse('{"id":"debugging/declarative-mutation-directives","title":"Debugging Declarative Mutation Directives","description":"Debugging declarative mutation directives","source":"@site/versioned_docs/version-v20.1.0/debugging/declarative-mutation-directives.md","sourceDirName":"debugging","slug":"/debugging/declarative-mutation-directives/","permalink":"/docs/v20.1.0/debugging/declarative-mutation-directives/","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/relay/tree/main/website/versioned_docs/version-v20.1.0/debugging/declarative-mutation-directives.md","tags":[],"version":"v20.1.0","frontMatter":{"id":"declarative-mutation-directives","title":"Debugging Declarative Mutation Directives","slug":"/debugging/declarative-mutation-directives/","description":"Debugging declarative mutation directives","keywords":["debugging","troubleshooting","declarative mutation directive","deleteRecord","handlerProvider","appendEdge","prependEdge","appendNode","prependNode"]},"sidebar":"docs","previous":{"title":"Inconsistent Typename Error","permalink":"/docs/v20.1.0/debugging/inconsistent-typename-error/"},"next":{"title":"Why Is My Field Null?","permalink":"/docs/v20.1.0/debugging/why-null/"}}'),r=i(74848),d=i(28453);let o={id:"declarative-mutation-directives",title:"Debugging Declarative Mutation Directives",slug:"/debugging/declarative-mutation-directives/",description:"Debugging declarative mutation directives",keywords:["debugging","troubleshooting","declarative mutation directive","deleteRecord","handlerProvider","appendEdge","prependEdge","appendNode","prependNode"]},a,c={},s=[];function l(e){let t={code:"code",p:"p",pre:"pre",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"If you see an error similar to:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RelayFBHandlerProvider: No handler defined for `deleteRecord`. [Caught in: An uncaught error was thrown inside `RelayObservable`.]\n"})}),"\n",(0,r.jsx)(t.p,{children:"or"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RelayModernEnvironment: Expected a handler to be provided for handle `deleteRecord`.\n"})}),"\n",(0,r.jsxs)(t.p,{children:["This probably means that you are using a Relay environment to which a ",(0,r.jsx)(t.code,{children:"handlerProvider"})," is passed. However, the handler provider does not know how to accept the handles ",(0,r.jsx)(t.code,{children:'"deleteRecord"'}),", ",(0,r.jsx)(t.code,{children:'"appendEdge"'})," or ",(0,r.jsx)(t.code,{children:'"prependEdge"'}),". If this is the case, you should return ",(0,r.jsx)(t.code,{children:"MutationHandlers.DeleteRecordHandler"}),", ",(0,r.jsx)(t.code,{children:"MutationHandlers.AppendEdgeHandler"}),", or ",(0,r.jsx)(t.code,{children:"MutationHandlers.PrependEdgeHandler"})," respectively (these can be imported from ",(0,r.jsx)(t.code,{children:"relay-runtime"}),")."]})]})}function u(e={}){let{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},28453(e,t,i){i.d(t,{R:()=>o,x:()=>a});var n=i(96540);let r={},d=n.createContext(r);function o(e){let t=n.useContext(d);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(d.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.