Ошибка Graphql после извлечения новых данных из репозитория Github в проекте

#reactjs #graphql #apollo

#reactjs #graphql #apollo

Вопрос:

В моем приложении React, использующем GraphQL и Apollo, я извлек данные из репозитория, над которым работаю с командой. После того, как я выполнил миграцию для получения последних обновлений БД, я начал получать сообщение об ошибке, как показано ниже. Я хотел бы знать, что мне нужно делать в соответствии с моей командой, похоже, это проблема с моей стороны, как будто что-то неправильно обновлялось при последнем запуске проекта.

Поля, на которые ссылается ошибка, реализованы в проекте и используются. Запрос также является общим

Я хотел бы знать, какие еще шаги я могу предпринять, чтобы понять, почему возникает эта ошибка, и может ли быть какая-либо проблема с кэшем, или мне нужно выполнить сброс.

 {
   "errors":[
      {
         "message":"Cannot query field "updatedAt" on type "Study". Did you mean "createdAt"?",
         "locations":[
            {
               "line":10,
               "column":5
            }
         ],
         "extensions":{
            "code":"GRAPHQL_VALIDATION_FAILED",
            "exception":{
               "stacktrace":[
                  "Cannot query field "updatedAt" on type "Study". Did you mean "createdAt"?",
                  "",
                  "GraphQL request (10:5)",
                  " 9:     createdAt",
                  "10:     updatedAt",
                  "        ^",
                  "11:     archivedAt",
                  "",
                  "    at Object.Field (/usr/src/app/node_modules/graphql/validation/rules/FieldsOnCorrectType.js:64:31)",
                  "    at Object.enter (/usr/src/app/node_modules/graphql/language/visitor.js:334:29)",
                  "    at Object.enter (/usr/src/app/node_modules/graphql/language/visitor.js:385:25)",
                  "    at visit (/usr/src/app/node_modules/graphql/language/visitor.js:252:26)",
                  "    at Object.validate (/usr/src/app/node_modules/graphql/validation/validate.js:63:22)",
                  "    at validate (/usr/src/app/node_modules/apollo-server-core/src/requestPipeline.ts:293:22)",
                  "    at Object.<anonymous> (/usr/src/app/node_modules/apollo-server-core/src/requestPipeline.ts:198:30)",
                  "    at Generator.next (<anonymous>)",
                  "    at fulfilled (/usr/src/app/node_modules/apollo-server-core/dist/requestPipeline.js:4:58)",
                  "    at process._tickCallback (internal/process/next_tick.js:68:7)"
               ]
            }
         }
      },
      {
         "message":"Cannot query field "archivedAt" on type "Study". Did you mean "createdAt"?",
         "locations":[
            {
               "line":11,
               "column":5
            }
         ],
         "extensions":{
            "code":"GRAPHQL_VALIDATION_FAILED",
            "exception":{
               "stacktrace":[
                  "Cannot query field "archivedAt" on type "Study". Did you mean "createdAt"?",
                  "",
                  "GraphQL request (11:5)",
                  "10:     updatedAt",
                  "11:     archivedAt",
                  "        ^",
                  "12:     selfAssessmentOptions {",
                  "",
                  "    at Object.Field (/usr/src/app/node_modules/graphql/validation/rules/FieldsOnCorrectType.js:64:31)",
                  "    at Object.enter (/usr/src/app/node_modules/graphql/language/visitor.js:334:29)",
                  "    at Object.enter (/usr/src/app/node_modules/graphql/language/visitor.js:385:25)",
                  "    at visit (/usr/src/app/node_modules/graphql/language/visitor.js:252:26)",
                  "    at Object.validate (/usr/src/app/node_modules/graphql/validation/validate.js:63:22)",
                  "    at validate (/usr/src/app/node_modules/apollo-server-core/src/requestPipeline.ts:293:22)",
                  "    at Object.<anonymous> (/usr/src/app/node_modules/apollo-server-core/src/requestPipeline.ts:198:30)",
                  "    at Generator.next (<anonymous>)",
                  "    at fulfilled (/usr/src/app/node_modules/apollo-server-core/dist/requestPipeline.js:4:58)",
                  "    at process._tickCallback (internal/process/next_tick.js:68:7)"
               ]
            }
         }
      }
   ]
}  
  

Запрос, в котором возникает ошибка

 export const getStudy = gql`
  query getStudy($studyId: ID!) {
    study(id: $studyId) {
      id
      duration
      status
      internalStudyName
      startDate
      sponsor
      createdAt
      updatedAt
      archivedAt
      selfAssessmentOptions {
        welcomeImage
        colorMain
        colorLight
        fontInclude
        fontFamily
        messages
        contactForm
      }
      featureOptions {
        studyId
        recruitmentPortal
        engagementPortal
      }
    }
  }
`;
  

Комментарии:

1. Похоже, что он не может найти два поля в схеме — updatedAt и archivedAt. Возможно, они были удалены или серверная часть была изменена, чтобы не раскрывать их?

2. Действительно, первое предположение заключается в том, что archivedAt поле было удалено из структуры, возвращаемой study запросом, однако вы упоминаете, что поле все еще на месте. Я бы начал расследование, просмотрев схему study запроса с использованием общедоступной конечной точки и средства экспорта graphql — чтобы проверить, что это на самом деле возвращает. Возможно, это другой тип. Возможно, вы заметите, что по какой-то причине это поле отсутствует, поэтому его может вызвать некоторый кеш.

3. Я понимаю, но почему у всех нет проблем, а у меня да? Я уже переключился на master и испытываю ту же проблему после миграции и обновления кода до последней версии

4. Я обнаружил, что на самом деле были добавлены новые поля 3, но до сих пор не понимаю, почему у меня возникли проблемы при обновлении кода. Есть способ сброса кэша? система также использует RabbitMQ, может быть, в этом проблема?