hippware / rn-chat

MIT License
5 stars 0 forks source link

[dev] GraphQL error: cannot return null for non-nullable field #4806

Closed southerneer closed 4 years ago

southerneer commented 4 years ago

I started seeing this this morning

image.png

I assume this is related to recent back-end API changes(?) cc @aksonov

southerneer commented 4 years ago

I saw this with bypass user 222 but not with 111

aksonov commented 4 years ago

I've found more details:

"message":"Cannot return null for non-nullable field","path":["notifications","edges",7,"node","data","shareTypes","from"]}]},"status":"ok"}

Looks like LocationShareNotification is broken for some users (i.e. shareTypes is null), could we fix it? @toland @bernardd

2020-02-20 15:21:03.205 [info][tid:com.facebook.react.JavaScript] 2020-02-20T12:21:03.203Z | socket(0):push | __absinthe__:control doc (9, 24) | {"query":"query notifications($first: Int, $last: Int, $beforeId: AInt, $afterId: AInt, $ownUsername: String!, $types: [NotificationType]) {\n  notifications(first: $first, last: $last, beforeId: $beforeId, afterId: $afterId, types: $types) {\n    totalCount\n    edges {\n      node {\n        ... on NotificationUpdate {\n          ... on NotificationDeleted {\n            deletedId: id\n            __typename\n          }\n          ... on Notification {\n            id\n            createdAt\n            data {\n              __typename\n              ... on LocationShareNearbyStartNotification {\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on LocationShareNearbyEndNotification {\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on LocationShareEndNotification {\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on LocationShareNotification {\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                shareTypes {\n                  from\n                  to\n                  __typename\n                }\n                __typename\n              }\n              ... on UserInvitationNotification {\n                shareType\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on UserBefriendNotification {\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on BotInvitationNotification {\n                bot {\n                  id\n                  icon\n                  title\n                  address\n                  addressData\n                  description\n                  radius\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  lat\n                  lon\n                  owner {\n                    id\n                    firstName\n                    lastName\n                    handle\n                    media {\n                      urls {\n                        type\n                        url\n                        __typename\n                      }\n                      trosUrl\n                      __typename\n                    }\n                    bots(first: 0, relationship: OWNED) {\n                      totalCount\n                      __typename\n                    }\n                    presence {\n                      status\n                      updatedAt\n                      __typename\n                    }\n                    __typename\n                  }\n                  items(first: 0) {\n                    totalCount\n                    __typename\n                  }\n                  visitorCount: subscribers(first: 0, type: VISITOR) {\n                    totalCount\n                    __typename\n                  }\n                  subscriberCount: subscribers(first: 0, type: SUBSCRIBER) {\n                    totalCount\n                    __typename\n                  }\n                  subscribers(first: 1, id: $ownUsername) {\n                    edges {\n                      relationships\n                      __typename\n                    }\n                    __typename\n                  }\n                  __typename\n                }\n                invitation {\n                  accepted\n                  id\n                  __typename\n                }\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on BotInvitationResponseNotification {\n                accepted\n                invitation {\n                  id\n                  accepted\n                  __typename\n                }\n                bot {\n                  id\n                  icon\n                  title\n                  address\n                  addressData\n                  description\n                  radius\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  lat\n                  lon\n                  owner {\n                    id\n                    firstName\n                    lastName\n                    handle\n                    media {\n                      urls {\n                        type\n                        url\n                        __typename\n                      }\n                      trosUrl\n                      __typename\n                    }\n                    bots(first: 0, relationship: OWNED) {\n                      totalCount\n                      __typename\n                    }\n                    presence {\n                      status\n                      updatedAt\n                      __typename\n                    }\n                    __typename\n                  }\n                  items(first: 0) {\n                    totalCount\n                    __typename\n                  }\n                  visitorCount: subscribers(first: 0, type: VISITOR) {\n                    totalCount\n                    __typename\n                  }\n                  subscriberCount: subscribers(first: 0, type: SUBSCRIBER) {\n                    totalCount\n                    __typename\n                  }\n                  subscribers(first: 1, id: $ownUsername) {\n                    edges {\n                      relationships\n                      __typename\n                    }\n                    __typename\n                  }\n                  __typename\n                }\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on BotItemNotification {\n                bot {\n                  id\n                  icon\n                  title\n                  address\n                  addressData\n                  description\n                  radius\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  lat\n                  lon\n                  owner {\n                    id\n                    firstName\n                    lastName\n                    handle\n                    media {\n                      urls {\n                        type\n                        url\n                        __typename\n                      }\n                      trosUrl\n                      __typename\n                    }\n                    bots(first: 0, relationship: OWNED) {\n                      totalCount\n                      __typename\n                    }\n                    presence {\n                      status\n                      updatedAt\n                      __typename\n                    }\n                    __typename\n                  }\n                  items(first: 0) {\n                    totalCount\n                    __typename\n                  }\n                  visitorCount: subscribers(first: 0, type: VISITOR) {\n                    totalCount\n                    __typename\n                  }\n                  subscriberCount: subscribers(first: 0, type: SUBSCRIBER) {\n                    totalCount\n                    __typename\n                  }\n                  subscribers(first: 1, id: $ownUsername) {\n                    edges {\n                      relationships\n                      __typename\n                    }\n                    __typename\n                  }\n                  __typename\n                }\n                botItem {\n                  id\n                  content\n                  createdAt\n                  updatedAt\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  owner {\n                    id\n                    firstName\n                    lastName\n                    handle\n                    media {\n                      urls {\n                        type\n                        url\n                        __typename\n                      }\n                      trosUrl\n                      __typename\n                    }\n                    bots(first: 0, relationship: OWNED) {\n                      totalCount\n                      __typename\n                    }\n                    presence {\n                      status\n                      updatedAt\n                      __typename\n                    }\n                    __typename\n                  }\n                  __typename\n                }\n                __typename\n              }\n              ... on GeofenceEventNotification {\n                bot {\n                  id\n                  icon\n                  title\n                  address\n                  addressData\n                  description\n                  radius\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  lat\n                  lon\n                  owner {\n                    id\n                    firstName\n                    lastName\n                    handle\n                    media {\n                      urls {\n                        type\n                        url\n                        __typename\n                      }\n                      trosUrl\n                      __typename\n                    }\n                    bots(first: 0, relationship: OWNED) {\n                      totalCount\n                      __typename\n                    }\n                    presence {\n                      status\n                      updatedAt\n                      __typename\n                    }\n                    __typename\n                  }\n                  items(first: 0) {\n                    totalCount\n                    __typename\n                  }\n                  visitorCount: subscribers(first: 0, type: VISITOR) {\n                    totalCount\n                    __typename\n                  }\n                  subscriberCount: subscribers(first: 0, type: SUBSCRIBER) {\n                    totalCount\n                    __typename\n                  }\n                  subscribers(first: 1, id: $ownUsername) {\n                    edges {\n                      relationships\n                      __typename\n                    }\n                    __typename\n                  }\n                  __typename\n                }\n                user {\n                  id\n                  firstName\n                  lastName\n                  handle\n                  media {\n                    urls {\n                      type\n                      url\n                      __typename\n                    }\n                    trosUrl\n                    __typename\n                  }\n                  bots(first: 0, relationship: OWNED) {\n                    totalCount\n                    __typename\n                  }\n                  presence {\n                    status\n                    updatedAt\n                    __typename\n                  }\n                  __typename\n                }\n                event\n                __typename\n              }\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"beforeId":"85274","first":20,"ownUsername":"8dd4404e-d699-11e8-8cf2-6bee717d6096","types":["BOT_ITEM_NOTIFICATION","GEOFENCE_EVENT_NOTIFICATION","BOT_INVITATION_RESPONSE_NOTIFICATION","LOCATION_SHARE_NOTIFICATION","USER_BEFRIEND_NOTIFICATION"]}}
toland commented 4 years ago

This is due to old notifications in the database which don't have share type information. I'll have to think about how we can handle this case.

toland commented 4 years ago

PR pending: https://github.com/hippware/wocky/pull/3123

bengtan commented 4 years ago

I guess this is a no-op and we'll test again after the back-end PR is merged.

bernardd commented 4 years ago

I merged it 3 hours ago.

aksonov commented 4 years ago

Works well, closing