кто-нибудь может объяснить, почему мое приложение реагирует + apollo ведет себя так, когда я пытаюсь использовать мутацию, которая возвращает ошибку?

GraphQL мутация возвращает это (код ответа 200): {"errors":[{"error":{"result":"identity.not-found","error":"authentication-failed","statusCode":401}}],"data":{"login":null}}
Моя мутация выглядит так:
export const LOGIN_MUTATION = gql`
mutation($input: LoginInput!) {
login(input: $input) {
token
}
}
`;
с именем:
const handleSignIn = () => {
loginMutation({
variables: {
input: {
clientId: config.clientId,
username: userName,
password: password,
clientSecret: config.clientSecret
}
}
});
};
Она ведет себя некоторое время как ожидается (мой собственный настраиваемый компонент ошибок отображается - {error && <div>error</div>}
), но затем он выбрасывает это необработанное отклонение.
Если я добавлю функцию обратного вызова catch в вызов мутации, он будет работать, как и ожидалось.
Однако я нигде не нашел в apollo docs упоминаний о необходимости всегда отлавливать ошибки GraphQL таким образом. Этого должно быть достаточно, если я правильно понимаю: const [loginMutation, {data, loading, error}] = useMutation(LOGIN_MUTATION);
Правильно ли это поведение или я что-то пропускаю?
Версии:
"@apollo/react-hooks": "^3.1.3"
"apollo-boost": "^0.4.7"
"graphql": "^14.5.8"