I'm having an issue with the relay-compiler that fails when fields are required.
Here's a simplified version of the schema that I used when I was hitting the issue.
allPosts(after: String, before: String, first: Int, last: Int): PostConnection!
type PostConnection {
pageInfo: PageInfo!
edges: [PostEdge]
}
type PostEdge {
node: Post!
cursor: String!
}
type PageInfo {
hasNextPage: Boolean!
hasPreviousPage: Boolean!
startCursor: String
endCursor: String
}
type Post {
id: ID!
title: String!
}
Using required fields on the connections caused the compiler to fail with the following error:
Invariant Violation: RelaySchemaUtils: Expected type `PostConnection!` to be an object or interface type.

Using the following schema without required fields works:
allPosts(after: String, before: String, first: Int, last: Int): PostConnection
type PostConnection {
pageInfo: PageInfo
edges: [PostEdge]
}
type PostEdge {
node: Post
cursor: String
}
type PageInfo {
hasNextPage: Boolean
hasPreviousPage: Boolean
startCursor: String
endCursor: String
}
type Post {
id: ID!
title: String!
}
Feel free to take a look at the full project (note that the README doesn't yet include instructions about setting up the relay-compiler).
If you want to take a look, the cause is most likely in RelayConnectionTransform.validateConnectionType.
Adding a new connection to the test schema that's non-nullable to extend the test in RelayConnectionTransform-test.js would be great!
Hey Jan, thanks for thee hint! This seems like a slightly bigger refactor since assertTypeWithFields is used in multiple places, I'm not really comfortable doing that right now. I'll be releasing a getting started tutorial about Relay Modern today where I adjust the schema and remove the constraint for certain fields to be required in order to work around the issue.
FYI - the tutorial is now online: https://www.graph.cool/docs/tutorials/relay-modern-getting-started-woodito7ug
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Most helpful comment
FYI - the tutorial is now online: https://www.graph.cool/docs/tutorials/relay-modern-getting-started-woodito7ug