@@ -151,6 +151,8 @@ type __Type {
151151 ofType : __Type
152152 # may be non-null for custom SCALAR, otherwise null.
153153 specifiedByURL : String
154+ # must be non-null for NON_NULL, otherwise null.
155+ isErrorBoundary : Boolean
154156}
155157
156158enum __TypeKind {
@@ -168,7 +170,7 @@ type __Field {
168170 name : String !
169171 description : String
170172 args (includeDeprecated : Boolean = false ): [__InputValue ! ]!
171- type : __Type !
173+ type ( includeErrorBoundaries : Boolean ! = false ) : __Type !
172174 isDeprecated : Boolean !
173175 deprecationReason : String
174176}
@@ -395,8 +397,13 @@ Fields\:
395397GraphQL types are nullable . The value {null } is a valid response for field type .
396398
397399A Non -Null type is a type modifier : it wraps another type instance in the
398- `ofType ` field . Non -null types do not allow {null } as a response , and indicate
399- required inputs for arguments and input object fields .
400+ `ofType ` field . A Non -Null type may opt to be an error boundary , in which case
401+ it indicates that the value is not expected to be null : it will only be null in
402+ the case of an error (either it's own, or one of its children). For error
403+ boundary non -null types , the `null ` value will not "bubble" . Error boundary
404+ non -null types are only allowed in output positions . Non -null types that are not
405+ error boundaries do not allow {null } as a response , and indicate required inputs
406+ for arguments and input object fields .
400407
401408The modified type in the `ofType ` field may itself be a modified List type ,
402409allowing the representation of Non -Null of Lists . However it must not be a
@@ -406,6 +413,8 @@ Fields\:
406413
407414- `kind ` must return `__TypeKind .NON_NULL `.
408415- `ofType ` must return a type of any kind except Non -Null .
416+ - `isErrorBoundary ` must return true if this Non -Null is an error boundary ,
417+ false otherwise .
409418- All other fields must return {null }.
410419
411420### The \_\_Field Type
@@ -422,6 +431,10 @@ Fields\:
422431 {true }, deprecated arguments are also returned .
423432- `type ` must return a `__Type ` that represents the type of value returned by
424433 this field .
434+ - Accepts the argument `includeErrorBoundaries ` which defaults to {false }. If
435+ {false } then the field will instead return a `__Type ` that represents the
436+ type of value returned by this field with all error -boundary non -null type
437+ modifiers removed . This is for backwards compatibility .
425438- `isDeprecated ` returns {true } if this field should no longer be used ,
426439 otherwise {false }.
427440- `deprecationReason ` optionally provides a reason why this field is deprecated .
0 commit comments