метод findAll не может вернуть null для ненулевого поля ID(sequelize)

Мне нужно вернуть в return в резолвере последнюю добавленную запись в таблицу бд. Мне не понятно c чем связано сообщение об ошибке "message": "Cannot return null for non-nullable field Contact.id." поскольку я новичок в использовании GraphQL.

Схема:

import { buildSchema } from 'graphql';
    export var schema = buildSchema(`
      type Contact {
        id: ID!
        firstName: String
        lastName: String
        email: String
      }
    
      type Query {
        contacts: [Contact]
      }
    
      type Mutation {
        createContact(firstName: String!, lastName: String!, email: String!): Contact!
        updateContact(id: ID!, firstName: String!, lastName: String!, email: String!): String 
        deleteContact(id: ID!): String 
      }
    `);

Резолвер:

 create(contact){
      this.сontactModel.create({firstName: contact.firstName,
                            lastName: contact.lastName,
                            email: contact.email}).then(res=>{
                              console.log(res);
                            }).catch(err=>console.log(err));
      const res =  this.сontactModel.findAll({ 
        limit: 1, order: [['id', 'DESC']]});
        return res;
    }; 

Ответы (1 шт):

Автор решения: rbfnet0004

Нужно использовать метод findOne() вместо findAll(). Я заметил некую закономерность: в схеме описан тип Query, который возвращает список контактов. Для него findAll() сработает, в случае мутации на создание здесь возвращаемый тип один контакт и для него findAll() не сработает несмотря на ограничение в одну запись. Это связано с тем, что findAll() возвращает массив и если взять его с ограничением в одну запись, он вернет массив с одной записью. А findOne() действительно возвращает ЭЛЕМЕНТ ИЗ МАССИВА.

→ Ссылка