Vì field lỗi được khai báo không cho phép null: khi resolver không trả về được giá trị, lỗi lan lên field cha gần nhất cho phép null.
Nếu mọi field cha đều không cho phép null thì lan tới tận gốc.
type Post { author: User! } # non-null: author lỗi là null cả Post
type Post2 { author: User } # nullable: chỉ field này thành nullĐây là lý do nhiều đội lớn chọn để phần lớn field cho phép null. Mất một mẩu dữ liệu là chấp nhận được; mất cả màn hình vì một downstream service chập chờn thì không.
Các field nên giữ không null: id và các field tính từ chính record. Các field lấy từ dịch vụ khác, từ cache bên ngoài, hoặc có thể chậm thì nên cho phép null.
Việc nên làm song song: khi một field trả về null vì lỗi, ghi lỗi đó vào mảng errors kèm đường dẫn tới field, để client phân biệt được giữa không có dữ liệu và lấy dữ liệu thất bại — hai trường hợp cần hiển thị khác nhau.