Complete index

All RFCs

Full tracker view including open, merged, rejected, and superseded RFCs.

RFCStageChampionTitleLatest
#1193RFC 3 / Accepted@janettecUpdate description of Fragments to emphasize evolving data needsSpec PR merged on 2026-02-05
#1092RFC 3 / Accepted@benjieRecommend that order of unordered collections is maintained where possibleSpec PR merged on 2025-09-01
#825RFC 3 / Accepted@benjieOneOf Input ObjectsSpec PR merged on 2025-09-01
#794RFC 3 / Accepted@magicmarkSchema CoordinatesSpec PR merged on 2025-09-01
#1056RFC 3 / Accepted@benjieFix CoerceArgumentValues() hasValueSpec PR merged on 2025-07-03
#793RFC 3 / Accepted@benjieDefault value coercion rulesSpec PR merged on 2025-07-01
#1170RFC 3 / Accepted@fotoetienneAdd descriptions to executable documents | 2025 UpdateSpec PR merged on 2025-07-01
#1102RFC 3 / Accepted@benjieDefine Data Collections used in the specSpec PR merged on 2025-07-01
#955RFC 3 / Accepted@benjaminjkraftAdd validation rule that operation types existSpec PR merged on 2025-06-26
#1167RFC 3 / Accepted@benjieDo not exclude schema keyword if schema has descriptionSpec PR merged on 2025-06-26
#525RFC 3 / Accepted@smitt04Allow deprecation of input valuesAdvanced to RFC 3 on 2025-06-12
#860RFC 3 / Accepted@benjiePrevent @skip and @include on root subscription selection setSpec PR merged on 2025-06-05
#1142RFC 3 / Accepted@martinbonninmake `includeDeprecated` non nullableSpec PR merged on 2025-05-01
#1053RFC 3 / Accepted@benjieImplementations may not deprecate a field that the interface hasn't deprecatedSpec PR merged on 2025-05-01
#976RFC 3 / Accepted@benjieAdd 'extensions' to requestSpec PR merged on 2025-04-17
#1040RFC 3 / Accepted@martinbonninMake the reason argument in `@deprecated` non-nullableSpec PR merged on 2024-12-05
#1073RFC 3 / Accepted@martinbonninBe strict about error paths formatSpec PR merged on 2024-04-04
#987RFC 3 / Accepted@benjieFix ambiguity around when schema definition may be omittedSpec PR merged on 2023-02-09
#891RFC 3 / Accepted@dugenkui03Add explanation about argument name uniqueness.Spec PR merged on 2023-02-02
#805RFC 3 / Accepted@IvanGoncharovAllow deprecation of input values (field args, directive args, input fields)Spec PR merged on 2022-06-03
#849RFC 3 / Accepted@leebyronAllow full unicode rangeSpec PR merged on 2022-06-03
#776RFC 3 / Accepted@benjie__typename is not valid at subscription rootAdded to WG agenda on 2021-05-13
#649RFC 3 / Accepted@eapacheCustom Scalar Specification URLsSpec PR merged on 2021-04-09
#598RFC 3 / Accepted@leebyronAvoid parse ambiguity on types & extensionsSpec PR merged on 2021-04-08
#803RFC 3 / Accepted@benjieReplace 'query error' with 'request error'Spec PR merged on 2021-04-07
#701RFC 3 / Accepted@spawniaDisallow non-breakable chains of circular references in Input ObjectsSpec PR merged on 2021-01-11
#445RFC 3 / Accepted@spawniaDisallow non-breakable chains of circular references in Input ObjectsSpec PR closed on 2020-03-24
#466RFC 3 / Accepted@IvanGoncharovAdd description to SchemaSpec PR merged on 2020-02-06
#373RFC 3 / Accepted@mike-marcacciAllow interfaces to implement other interfacesSpec PR merged on 2020-01-11
#472RFC 3 / Accepted@OlegIlyenkoRepeatable directivesSpec PR merged on 2020-01-10
#601RFC 3 / Accepted@leebyronNumber value literal lookahead restrictionsSpec PR merged on 2020-01-10
#599RFC 3 / Accepted@leebyronClarify that lexing is greedySpec PR merged on 2020-01-10
#470RFC 3 / Accepted@OlegIlyenko"Directive order is significant" sectionSpec PR merged on 2019-08-07
#510RFC 3 / Accepted@mjmahoneAllow directives on variable definitionsAdvanced to RFC 3 on 2018-10-02
#454RFC 3 / Accepted@IvanGoncharovAdd validation steps for schema extensionsAdvanced to RFC 3 on 2018-10-02
#459RFC 3 / Accepted@mjmahoneRemove Interface is implemented by 1+ Objects validationAdvanced to RFC 3 on 2018-10-02
#462RFC 3 / Accepted@leebyronInput & Output type definitionAdvanced to RFC 3 on 2018-10-02
#463RFC 3 / Accepted@leebyronEnsure validation of directive argumentsAdvanced to RFC 3 on 2018-10-02
#1206Next stageRFC 2 / Draft@BoDAdd support for directives on directive definitionsMarked as Ready for Next Stage on 2026-05-07
#1224RFC 2 / Draft@benjieFragment arguments - needs championSpec PR created on 2026-04-15
#1110RFC 2 / Draft@robrichardIncremental Delivery spec draft1 commit pushed on 2026-04-09
#1081RFC 2 / Draft@JoviDeCroockFragment arguments/variables (syntax/validation/execution)Spec PR closed on 2026-03-08
#1063RFC 2 / Draft@benjieType system ordering of: object interfaces, directive arguments, input object fields, enum valuesSpec PR closed on 2025-09-01
#1058RFC 2 / Draft@benjieList coercion algorithmAdvanced to RFC 2 on 2025-07-03
#1180Next stageRFC 1 / Proposal@JoviDeCroockEditorial: Fix cases in validation where technically a crash could occur due to non-existent definitionsSpec PR closed on 2026-02-24
#1177Next stageRFC 1 / Proposal@benjieIncorporate meta-fields into ExecuteCollectedFields4 commits pushed on 2025-07-04
#1211RFC 1 / Proposal@jbellengerOneOf inhabitability2 commits pushed on 2026-05-07
#1208RFC 1 / Proposal@benjieService capabilities6 commits pushed on 2026-04-02
#950RFC 1 / Proposal@yaacovCRallow unions to include interfaces and unionsSpec PR closed on 2026-03-05
#939RFC 1 / Proposal@yaacovCRallow unions to declare implementation of interfacesSpec PR closed on 2026-03-05
#1163RFC 1 / Proposal@benjieService capabilities / error behaviorsAdded to WG agenda on 2026-01-15
#907RFC 1 / Proposal@IvanGoncharovAdd support for directives on directivesSpec PR closed on 2025-12-18
#1179RFC 1 / Proposal@leebyronCoerceInputValue()6 commits pushed on 2025-07-05
#997RFC 1 / Proposal@fotoetienneExpand @deprecated to ObjectsAdded to WG agenda on 2025-06-26
#1127RFC 1 / Proposal@benjieWhen `sourceStream` errors, yield a `{ errors: [...] }` responseAdvanced to RFC 1 on 2025-01-09
#1059RFC 1 / Proposal@benjieIntroduce Strict and Legacy All Variable Usages Are AllowedAdvanced to RFC 1 on 2023-12-07
#509RFC 1 / Proposal@taionAllow singular variables in list locationsAdvanced to RFC 1 on 2018-10-02
#1200Next stageRFC 0 / Strawman@PascalSennAdd Schema Coordinate to GraphQL ErrorsSpec PR created on 2025-10-28
#1165RFC 0 / Strawman@benjieAdd Transitional Non-Null appendix (`@noPropagate` directive)Marked as Stale on 2026-03-19
#1065RFC 0 / Strawman@benjieSemanticNonNull type (null only on error)Marked as Stale on 2026-03-19
MockSpecRFC 0 / Strawman-GraphQL Response Mocking SpecificationRFC document created on 2026-02-02
FullSchemasRFC 0 / Strawman-Full SchemasRFC document updated on 2026-01-28
SchemaCoordinatesRFC 0 / Strawman-StatusRFC document updated on 2026-01-26
FieldExtensionsRFC 0 / Strawman-StatusRFC document updated on 2026-01-26
ClientControlledNullabilityRFC 0 / Strawman-StatusRFC document updated on 2026-01-26
#567RFC 0 / Strawman@benheadallow directives on directive definitionsSpec PR closed on 2026-01-16
wg#1871RFC 0 / Strawman@nikolayandrProposal: Omit fields when their resolver fails (optional execution mode, no new syntax)WG discussion created on 2025-12-04
#673RFC 0 / Strawman@spawniaServers must preserve lexical ordering between SDL and introspectionSpec PR closed on 2025-11-05
ObjectIdentificationRFC 0 / Strawman-Object IdentificationRFC document created on 2025-10-15
MatchesDirectiveRFC 0 / Strawman-Matches DirectiveRFC document created on 2025-09-19
#1183RFC 0 / Strawman@benjieFix "response position" definition; clarify sibling errors on propagationAdvanced to RFC 0 on 2025-07-17
#1184RFC 0 / Strawman@benjieSibling errors should not be added after propagationTop comment edited on 2025-07-10
InputUnionRFC 0 / Strawman-NOTE: this document is kept for historic purposes; [`@oneOf`](https://github.com/graphql/graphql-spec/pull/825) gained RFC3 status in May 2025.RFC document updated on 2025-06-05
SemanticNullabilityRFC 0 / Strawman-Semantic NullabilityRFC document updated on 2025-05-01
wg#1700RFC 0 / Strawman@leebyronLee's new nullability & error propagation proposalWG discussion created on 2025-03-26
DisableErrorPropagationDirectiveRFC 0 / Strawman-Disable Error Propagation DirectiveRFC document created on 2025-03-19
#1050RFC 0 / Strawman@benjieDirective proposal for opting out of null bubblingTop comment edited on 2025-03-10
#1114RFC 0 / Strawman@yaacovCRadd __directive meta field parallel to __typeAdvanced to RFC 0 on 2024-11-07
DeferStreamRFC 0 / Strawman-GraphQL Defer and Stream DirectivesRFC document updated on 2024-09-19
#1049RFC 0 / Strawman@martinbonninIntroduce SourceSchemaDocument and FullSchemaDocumentAdvanced to RFC 0 on 2023-11-29
FeatureDiscoveryRFC 0 / Strawman-Feature DiscoveryRFC document updated on 2023-11-28
StructRFC 0 / Strawman-Polymorphic-capable composite symmetric input/output type (`struct`)RFC document updated on 2023-11-28
wg#1410RFC 0 / Strawman@leebyronStrict Semantic NullabilityWG discussion created on 2023-10-05
wg#1394RFC 0 / Strawman@captbaritoneTrue Nullability SchemaWG discussion created on 2023-09-12
#1015RFC 0 / Strawman@leebyron"Root" Types clarity → "Operation Type"Added to WG agenda on 2023-03-02
FragmentArgumentsRFC 0 / Strawman-Fragment ArgumentsRFC document created on 2023-02-10
wg#1239RFC 0 / Strawman@mjmahoneFragment Arguments: RFC + Implementation DetailsWG discussion created on 2023-01-19
#998RFC 0 / Strawman@yaacovCRadd spec edits for referencesAdvanced to RFC 0 on 2022-11-04
OptInFeaturesRFC 0 / Strawman-Opt-in featuresRFC document updated on 2022-09-30
ExpandingSubtypingRFC 0 / Strawman-Expanding Subtyping (for output types)RFC document created on 2022-08-31
AnnotationStructsRFC 0 / Strawman-Annotation StructsRFC document updated on 2022-08-31
MetadataStructsRFC 0 / Strawman-Metadata StructsRFC document updated on 2022-08-16
wg#1096RFC 0 / Strawman@leebyron"Metadata Directives" ProposalWG discussion created on 2022-08-04
CompositeSchemasRFC 0 / Strawman-GraphQL Composite SchemasRFC document updated on 2022-07-22
wg#1071RFC 0 / Strawman@benjieStruct typeWG discussion created on 2022-07-18
wg#944RFC 0 / Strawman@yaacovCRNew Intersection TypeWG discussion created on 2022-04-30
wg#857RFC 0 / Strawman@mjmahoneFragment ModularityWG discussion created on 2022-01-07
FragmentModularityRFC 0 / Strawman-Fragment ModularityRFC document created on 2022-01-06
wg#815RFC 0 / Strawman@leebyronNested GraphQL MutationsWG discussion created on 2021-12-02
ImplicitInheritanceRFC 0 / Strawman-Implicit InheritanceRFC document updated on 2021-09-03
OperationExpressionsRFC 0 / Strawman-Operation ExpressionsRFC document created on 2021-09-02
SchemaFragmentsRFC 0 / Strawman-Schema FragmentsRFC document created on 2021-09-02
#879RFC 0 / Strawman@mjmahone__fulfilled meta fieldAdded to WG agenda on 2021-09-02
#706RFC 0 / Strawman@francisuAdd support for directives for an object field nameAdvanced to RFC 0 on 2020-09-03
SubscriptionsRFC 0 / Strawman-NOTE: this document is kept for historic purposes; GraphQL Subscriptions have been specified and released as part of the official [June 2018 GraphQL Specification](https://spec.graphql.org/June2018/).RFC document updated on 2020-08-19
#710RFC 0 / Strawman@chemisusAdd namedType and punctuatedName to __TypeAdvanced to RFC 0 on 2020-05-07
#674RFC 0 / Strawman@kassensallow empty selectionsAdvanced to RFC 0 on 2020-01-22
#631RFC 0 / Strawman@victorandreeMake root query operation type optionalAdded to WG agenda on 2019-12-05
#556RFC 0 / Strawman@langpavelDocument DirectivesTop comment edited on 2019-02-01
#521RFC 0 / Strawman@IvanGoncharovScalar serialize as built-in scalar typeSpec PR created on 2018-10-14
#325RFC 0 / Strawman@IvanGoncharovAdd "Any" scalar typeAdvanced to RFC 0 on 2018-10-02
#892RFC X / Superseded@IvanGoncharovAdd descriptions to executable definitionsSpec PR closed on 2025-06-26
#823RFC X / Superseded@benjieoperation expressionsMarked as Superseded on 2025-06-12
#667RFC X / Superseded@lilianammmatos[RFC Sketch] Defer and Stream DirectivesMarked as Superseded on 2025-06-12
#586RFC X / Superseded@benjieInput Objects accepting exactly @oneFieldMarked as Superseded on 2025-06-12
#326RFC X / Superseded@leebyronScalar serialize as built-in scalar typeMarked as Superseded on 2025-06-12
#471RFC X / Superseded@OlegIlyenkoLimit uniqueness to `@skip`, `@include` and `@deprecated` directivesMarked as Superseded on 2025-06-12
#1023RFC X / Superseded@yaacovCRincremental delivery without branchingMarked as Superseded on 2025-06-12
#1026RFC X / Superseded@yaacovCRincremental delivery with deduplication + concurrent executionMarked as Superseded on 2025-06-12
#999RFC X / Superseded@yaacovCRintroduce ExecuteGroupedFieldSet, CollectRootFields and CollectSubfieldsMarked as Superseded on 2025-06-12
#1034RFC X / Superseded@yaacovCRincremental delivery with deduplication + concurrent executionMarked as Superseded on 2025-06-12
#1048RFC X / Superseded@benjieNull-Only-On-Error / Semantically-Non-Null type (asterisk)Marked as Superseded on 2025-06-12
#1052RFC X / Superseded@yaacovCRdeduplicated incremental deliveryMarked as Superseded on 2025-06-12
#1126RFC X / Superseded@benjieGraphQL Subscriptions should handle errors in the source streamMarked as Superseded on 2025-06-12
#1157RFC X / Superseded@martinbonninExclude custom scalar literals from validationMarked as Superseded on 2025-06-12
#877RFC X / Superseded@IvanGoncharovForbid duplicating argument namesAdvanced to RFC 1 on 2025-06-12
#1098RFC X / Superseded@Shane32Add 5.2.4 Operation Type ExistsAdvanced to RFC 1 on 2025-06-12
#1153RFC X / Superseded@benjieAllow clients to disable error propagation via request parameterAdvanced to RFC 1 on 2025-06-12
#742RFC X / Superseded@robrichardSpec edits for @defer/@streamAdvanced to RFC 2 on 2025-06-12
#1091RFC X / Superseded@benjieDefine Data Collections used in the specAdvanced to RFC 2 on 2025-06-12
#1010RFC X / Superseded@mjmahoneFragment Arguments: Spec ImplementationAdvanced to RFC 1 on 2025-06-12
#865RFC X / Superseded@mjmahoneFragment Arguments (parameterized fragments) for GraphQLAdvanced to RFC 1 on 2025-06-12
#1145RFC X / Rejected@twofIntroduce @disableErrorPropagationMarked as Rejected on 2026-04-29
#1045RFC X / Rejected@benjieRemove fragmentSpreadName from visitedFragments when visit is completeSpec PR closed on 2025-07-17
#948RFC X / Rejected@benjieOneOf ObjectsSpec PR closed on 2025-07-03
#806RFC X / Rejected@benjie__typename should be valid at subscription rootMarked as Superseded on 2025-06-12
#888RFC X / Rejected@nojvekMap typeMarked as Rejected on 2025-06-12
#960RFC X / Rejected@yaacovCRAllow recursion within ResolveAbstractTypeMarked as Rejected on 2025-06-12
#1018RFC X / Rejected@benjieAlternative proposal for `@stream`/`@defer`Marked as Rejected on 2025-06-12
#395RFC X / Rejected@tgriesserinputUnion typeMarked as Rejected on 2025-06-12
#895RFC X / Rejected@twofClient Controlled NullabilityAdvanced to RFC 1 on 2025-06-12
#883RFC X / Rejected@IvanGoncharovRelax SameResponseShape algorithm to be compatible with covariant fieldsAdvanced to RFC 1 on 2025-06-12
#1166RFC X / Rejected@benjieEnable 'schema' keyword to be provided without root operationsSpec PR closed on 2025-05-22
#733RFC X / Rejected@benjieTagged typeSpec PR closed on 2024-07-01
#319RFC X / Rejected@IvanGoncharovAdd '@ignoreIfUnknown' to allow forward compatibility for clientsTop comment edited on 2023-11-28
#232RFC X / Rejected@stubailo__id field for unique identifiersMarked as Rejected on 2023-11-27
#606RFC X / Rejected@victorandreeSupport empty composite typesAdded to WG agenda on 2019-12-05
#460RFC X / Rejected@mjmahoneRequire Interfaces to have 1+ Objects implementingSpec PR closed on 2018-10-02
#315RFC X / Rejected@excitement-engineerSupport DateTime scalarSpec PR closed on 2018-10-02