Power Automate: Lỗi “The schema definition for action with status code ‘xxx’ is not valid. The schema definitions for actions with same status code must match”. Nguyên nhân và cách xử lý
Khi chúng ta thiết kế một Flow với nhiều logic phức tạo và gọi nhiều HTTP request để trả về response (ví dụ như cần get Response về lại PowerApps để xử lý các logic tiếp theo), chúng ta rất có thể sẽ gặp lỗi sau:
The schema definition for action with status code 'xxx' is not valid. The schema definitions for actions with same status code must match.
Nguyên nhân của lỗi này là do trong Flow có thể có nhiều phần rẽ nhánh (Condition) và trả về các Response không giống nhau về schema. Hãy xem một ví dụ sau:
Trong logic của 1 Flow update PIN number, chúng ta sẽ gửi một HTTP request và tạo một HTTP response để nhận employeeId kèm Status Code = 200 (nếu thành công)
Nếu HTTP request update PIN fail, response sẽ là một message lỗi kèm Status Code <> 200 (có thể là 400, 401,…). Chúng ta sẽ tạo một HTTP Response khác để nhận thông tin message lỗi
Nếu các bạn chú ý, 2 HTTP Response sẽ có schema khác nhau. Trong trường hợp update PIN thành công sẽ không có error message nhưng nếu thất bại thì cần phải get error message (có thể cần để hiển thị trong PowerApp)
HTTP Response (Success)
HTTP Response (Fail)
Khi Save Flow, chúng ta sẽ gặp lỗi như sau
Cách giải quyết: Để khắc phục lỗi này thì có 2 cách
- Đối với 2 HTTP Response, chúng ta có thể set Status Code khác nhau (ví dụ Success thì là 200 và Fail là 202)
- Cần thống nhất về schema cho 2 HTTP Response và giữ Status Code giống nhau, tức là chúng ta vẫn thêm property “error“vào HTTP Response Success mặc dù có thể sẽ không dùng tới. Đây là cách mình thường sử dụng trong dự án
Hy vọng bài viết sẽ giúp các bạn giải quyết được vấn đề tương tự khi thiết kế các Flow phức tạp có sử dụng các HTTP request và response