에러 정책을 ignore로 했을 때에도 에러가 발생. onError가 실행됨을 확인
onError를 넣어주지 않으면,
원인을 확인해보니, 아폴로 클라이언트의 에러 처리 코드에서 fetch에 대한 catch 처리시에는 ignore errorPolicy에 대한 반영이 되어있지 않음을 확인
아폴로 공식문서에는 오류 유형을 Graphql에러와 네트워크 오류로 나누고 있는데, 아폴로 에러(200과 함께 에러 필드로 넘어오는 에러)가 아닌 네트워크 에러의 경우에는 에러 정책으로 처리하지 않고 에러 객체의 networkError 필드에 해당 정보를 넘기는 방식을 사용. (테스트 결과 쿼리도 마찬가지)
서버에서 bad request에 대한 400 응답이 아닌 200응답으로 처리하거나, errorPolicy: ignore 대신에 onError를 붙여줘야 함. (실제 아폴로 V4부터 invalid variables에 대한 응답으로 200을 반환하도록 권장되었음)
apollographql/apollo-server#7460
https://www.apollographql.com/docs/apollo-server/data/errors/#setting-http-status-code-and-headers
서버 아폴로 버전은 현재 3.12.1이어서 올리기 어려울 것으로 예상...? 플러그인 등의 방식으로 bad user input 에 대한 응답 코드를 200으로 바꿀 수 있는지 확인 필요.