ParabolInc / parabol

Free online agile retrospective meeting tool
https://www.parabol.co/
Other
1.91k stars 326 forks source link

New team: Race condition #9914

Open mattkrick opened 3 months ago

mattkrick commented 3 months ago

Locally, I hit a race condition when creating a new Org + team:

11:00:41 2|GraphQL Executor  | GraphQLError: Cannot return null for non-nullable field Team.(agendaItems,agendaItems).
11:00:41 2|GraphQL Executor  |     at agendaItemsTeamagendaItemsResolverHandler (eval at compileQuery (/Users/matt/code/parabol/node_modules/graphql-jit/dist/execution.js:83:13), <anonymous>:26955:86)
11:00:41 2|GraphQL Executor  |     at __value.then.__context.nullErrors.push.__context.GraphQLError.line (eval at compileQuery (/Users/matt/code/parabol/node_modules/graphql-jit/dist/execution.js:83:13), <anonymous>:27555:9)
11:00:41 2|GraphQL Executor  |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
11:00:41 2|GraphQL Executor  | Trace: {
11:00:41 2|GraphQL Executor  |   error: '{"data":{"viewer":{"team":null,"teamMember":null,"id":"google-oauth2|104933228229706489335"}},"errors":[{"message":"Cannot return null for non-nullable field Team.(agendaItems,agendaItems).","locations":[{"line":1,"column":397},{"line":1,"column":580}],"path":["viewer","team","agendaItems"]}]}'

this returns null because the token they requested it with was the old token, not the new one with access to this team!