Có.
Phản hồi gồm phần data và mảng errors, nên một truy vấn có thể trả về partial result: nhánh nào lỗi thì null và được ghi vào mảng errors, nhánh khác vẫn có dữ liệu.
json
{
"data": { "post": { "title": "Hello", "author": null } },
"errors": [{ "message": "User service unavailable", "path": ["post", "author"] }]
}Hệ quả cho client: không thể chỉ nhìn HTTP status để biết thành công hay thất bại, vì mã thường là 200 kể cả khi có lỗi bên trong. Client library phải kiểm tra mảng errors trong phản hồi.
Cách phân loại thường dùng: lỗi kỹ thuật như downstream service chết thì để trong mảng errors; còn lỗi nghiệp vụ như sai mật khẩu hay hết hàng nên mô hình hoá thành kiểu trả về, vì client cần xử lý chúng như một kết quả hợp lệ.
Về bảo mật: error message trả cho client không nên chứa stack trace hay câu truy vấn nội bộ.