Khắc phục lỗi trong Shopify Flow

Shopify Flow giúp bạn tự động hóa các tác vụ và quy trình trong cửa hàng, nhưng bạn có thể gặp lỗi hoặc đạt đến một số giới hạn nhất định khi tạo hoặc chỉnh sửa dòng công việc. Trang này giải thích các vấn đề thường gặp bạn có thể gặp phải, chẳng hạn như giới hạn của dòng công việc và lỗi dữ liệu, đồng thời hướng dẫn cách giải quyết. Hiểu rõ các lỗi này có thể giúp bạn khắc phục sự cố và duy trì hoạt động mượt mà cho dòng công việc.

Lỗi khi tạo dòng công việc

Khi tạo dòng công việc, bạn có thể gặp lỗi không thể thêm dòng công việc mới. Dưới đây là một số lỗi thường gặp:

Vượt quá số lượng dòng công việc

Khi tạo dòng công việc mới, bạn có thể gặp thông báo lỗi: Bạn đã đạt đến giới hạn tối đa cho phép là 1.000 dòng công việc. Để tiếp tục, vui lòng xóa các dòng công việc không sử dụng và thử lại.

Flow giới hạn mỗi cửa hàng có tối đa 1.000 dòng công việc, bao gồm cả dòng công việc đang hoạt động và không hoạt động. Nếu đạt đến giới hạn này và muốn tạo thêm dòng công việc mới, hãy xóa bớt các dòng công việc không hoạt động hoặc không sử dụng.

Nếu cửa hàng đã có hơn 1.000 dòng công việc trước khi áp dụng giới hạn này, cửa hàng vẫn có thể tiếp tục hoạt động với hơn 1.000 dòng công việc. Tuy nhiên, để tạo dòng công việc mới, số lượng dòng công việc của bạn phải dưới mức giới hạn.

Bạn có thể gặp lỗi này khi thực hiện một số thao tác trên ứng dụng Flow:

  • Tạo dòng công việc mới
  • Nhân bản dòng công việc
  • Nhập dòng công việc
  • Cài đặt mẫu
Too many workflows on the same trigger

When activating a workflow, you might see a warning that your store has more than 10 active workflows using the same trigger.

Having many workflows that share the same trigger can cause performance issues, because each time the trigger event occurs, Flow must process all of the associated workflows. This fan-out can lead to slower execution times and increased resource usage.

To reduce the number of workflows on a single trigger, consider the following approaches:

  • Combine workflows that use the same trigger into a single workflow with multiple branches and conditions.
  • Deactivate or delete workflows that are no longer needed.
  • Review whether some workflows could use a more specific trigger instead.

Lỗi khi chỉnh sửa dòng công việc

Khi chỉnh sửa dòng công việc, bạn có thể gặp lỗi không thể lưu dòng công việc. Dưới đây là các lỗi thường gặp khi chỉnh sửa dòng công việc:

Không tìm thấy dữ liệu

Khi thêm thao tác mới vào dòng công việc, bạn có thể gặp thông báo lỗi Không tìm thấy dữ liệu:

Lỗi không tìm thấy dữ liệu

Lỗi này xảy ra vì nhiều thao tác, chẳng hạn như Thêm thẻ sản phẩm, yêu cầu phải có tài nguyên Shopify, ví dụ như Sản phẩm. Nếu tài nguyên đó không khả dụng thì thao tác không thể chạy. Thông thường, các dòng công việc có thể chứa dữ liệu gần giống với dữ liệu bắt buộc nhưng không hoàn toàn đáp ứng yêu cầu.

Các phần sau đây mô tả những trường hợp phổ biến có thể gây ra lỗi này và cách khắc phục.

Vấn đề 1: Thao tác Lấy dữ liệu cung cấp một danh sách nhưng yêu cầu chỉ là một mục duy nhất

Thông thường, dòng công việc cung cấp một danh sách tài nguyên Shopify nhưng thao tác chỉ cho phép một tài nguyên duy nhất. Ví dụ: dòng công việc cung cấp danh sách sản phẩm thông qua thao tác Lấy dữ liệu sản phẩm nhưng thao tác Thêm thẻ sản phẩm lại yêu cầu một sản phẩm duy nhất.

Để khắc phục lỗi này, bạn có thể thêm thao tác Cho mỗi để lặp qua danh sách và gọi thao tác cho từng mục trong danh sách. Ví dụ này minh họa cả lỗi và giải pháp bằng cách sử dụng thao tác Cho mỗi:

Lỗi không tìm thấy dữ liệu

Vấn đề 2: Yếu tố kích hoạt cung cấp một danh sách nhưng yêu cầu chỉ là một mục duy nhất

Lỗi tương tự có thể xảy ra khi một thao tác yêu cầu một tài nguyên duy nhất nhưng yếu tố kích hoạt lại cung cấp một danh sách. Ví dụ: thao tác Đánh dấu yêu cầu thực hiện đơn hàng là đã hoàn tất cần có Yêu cầu thực hiện đơn hàng, nhưng yếu tố kích hoạt lại xuất phát từ một Đơn hàng (chứa danh sách các yêu cầu thực hiện đơn hàng).

Để khắc phục lỗi này, tương tự như Vấn đề 1, bạn có thể thêm thao tác Cho mỗi để lặp qua danh sách và gọi thao tác cho từng mục trong danh sách:

Giải pháp đối với yêu cầu thực hiện đơn hàng

Ngoài ra, bạn có thể sử dụng yếu tố kích hoạt khác để cung cấp tài nguyên được yêu cầu. Ví dụ: thay vì sử dụng yếu tố kích hoạt Đã tạo đơn hàng, bạn có thể dùng yếu tố kích hoạt Yêu cầu thực hiện đơn hàng đã sẵn sàng thực hiện. Yếu tố này chỉ cung cấp một yêu cầu thực hiện đơn hàng duy nhất.

Ví dụ về yếu tố kích hoạt yêu cầu thực hiện đơn hàng đã sẵn sàng thực hiện

Vấn đề 3: Yếu tố kích hoạt Thời gian theo lịch trình không cung cấp dữ liệu

Yếu tố kích hoạt Thời gian theo lịch trình không cung cấp dữ liệu tài nguyên Shopify. Nếu cố gắng kết nối các thao tác yêu cầu tài nguyên Shopify sau yếu tố kích hoạt này, bạn sẽ gặp lỗi.

Để khắc phục lỗi này, hãy thêm một thao tác cung cấp dữ liệu bắt buộc, chẳng hạn như Lấy dữ liệu sản phẩm. Như đã lưu ý ở Vấn đề 1, bạn cũng phải thêm thao tác Cho mỗi để lặp qua danh sách bất kỳ do thao tác lấy dữ liệu trả về.

Ví dụ về thiếu sản phẩm bắt buộc

Vấn đề 4: Yếu tố kích hoạt của ứng dụng không cung cấp dữ liệu

Tương tự như vấn đề 3, một số yếu tố kích hoạt do ứng dụng tạo không cung cấp dữ liệu tài nguyên Shopify bắt buộc. Ví dụ: yếu tố kích hoạt "Đã tạo đánh giá" có thể cung cấp địa chỉ email nhưng không có đối tượng Khách hàng. Đối tượng này là yếu tố bắt buộc đối với nhiều thao tác như Thêm thẻ khách hàng.

Để khắc phục lỗi này, bạn có thể sử dụng thao tác "Lấy dữ liệu" để truy xuất tài nguyên Shopify cần thiết. Ví dụ: bạn có thể sử dụng thao tác Lấy dữ liệu khách hàng để lấy đối tượng khách hàng từ địa chỉ email do yếu tố kích hoạt cung cấp. Giống như các vấn đề khác, bạn cũng phải thêm thao tác Cho mỗi để lặp qua danh sách bất kỳ do thao tác lấy dữ liệu trả về.

Nếu không có tùy chọn "Lấy dữ liệu", bạn có thể cần liên hệ với nhà phát triển ứng dụng để yêu cầu họ điều chỉnh yếu tố kích hoạt nhằm cung cấp dữ liệu bắt buộc.

Vượt quá số lượng bước chờ

Khi thêm các bước chờ mới vào dòng công việc, bạn có thể gặp thông báo lỗi: Dòng công việc chỉ được có tối đa 40 bước chờ.

Flow giới hạn số lượng bước chờ cho phép trong một dòng công việc là 40. Nếu gặp lỗi này tức là bạn đã vượt quá giới hạn đó. Để khắc phục, hãy xóa bớt các bước chờ ở những phần khác trong dòng công việc.

Nếu bạn đã có các dòng công việc chứa hơn 40 bước chờ trước khi giới hạn này được áp dụng, dòng công việc của bạn vẫn sẽ hoạt động bình thường. Tuy nhiên, để thêm bước chờ mới, trước tiên bạn phải xóa các bước hiện có để đưa số lượng xuống dưới mức giới hạn.

Ngoài ra, tổng thời gian chờ của tất cả các bước chờ không được vượt quá 90 ngày.

Vượt quá giới hạn kích thước của giá trị trường cấu hình

Khi chỉnh sửa giá trị của các trường cấu hình bên trong điều kiện của dòng công việc, bạn có thể gặp thông báo lỗi: Giá trị trường cấu hình phải dưới 50 kB.

Flow giới hạn kích thước giá trị của một trường cấu hình ở mức dữ liệu 50 kB. Khi gặp lỗi này tức là bạn đã đạt hoặc vượt quá giới hạn. Để khắc phục, hãy rút ngắn độ dài dữ liệu bạn đang thêm vào trường đó.

Nếu bạn đã có trường cấu hình với giá trị từ 50 kB trở lên, dòng công việc của bạn vẫn tiếp tục chạy bình thường. Tuy nhiên, để thực hiện thay đổi trên dòng công việc, bạn phải sửa đổi lại giá trị đang gây ra lỗi.

Lỗi khi chạy dòng công việc

Khi một lần chạy dòng công việc gặp lỗi, lần chạy đó sẽ được đánh dấu là không thành công. Thông báo lỗi sẽ hiển thị trong phần thông tin chi tiết về lần chạy dòng công việc. Dưới đây là những lỗi thường gặp mà bạn có thể gặp phải khi lần chạy dòng công việc không thành công:

  • Lỗi tạm thời là các lỗi tạm thời xảy ra khi Flow không thể hoàn thành tác vụ. Flow sẽ thử lại những lỗi này cho đến khi thành công hoặc đạt đến giới hạn thời gian chờ.
  • Lỗi vĩnh viễn là các lỗi xảy ra khi Flow không thể hoàn thành tác vụ và không thể thử lại tác vụ đó.

Lỗi tạm thời

Lỗi tạm thời là các lỗi xảy ra khi Flow không thể hoàn thành một tác vụ. Các lỗi này sẽ được thử lại cho đến khi thành công hoặc đạt giới hạn thời gian chờ. Ví dụ: nếu Flow không thể liên hệ với đối tác khi thực hiện thao tác của trình kết nối, thì Flow sẽ thử lại tác vụ nhiều lần trước khi ngừng lại.

Các lần thử lại được giãn cách, với độ trễ giữa mỗi lần thử sau tăng lên so với độ trễ của lần trước. Thông thường, khi dòng công việc gặp lỗi tạm thời, dòng công việc đó sẽ ở trạng thái đang chạy trong thời gian dài để thử lại các tác vụ.

Khi thử lại tác vụ thành công, dòng công việc sẽ tiếp tục. Nếu tác vụ được thử lại gặp lỗi vĩnh viễn, dòng công việc sẽ không thành công. Mỗi phần của dòng công việc có giới hạn thực thi tổng hợp tối đa là 36 giờ. Nếu một bước có lỗi tạm thời không thành công trước khi đạt đến giới hạn đó, dòng công việc sẽ không thành công.

Dòng công việc có các bước chờ sẽ được chia thành nhiều phần, ảnh hưởng đến cách tính giới hạn thời gian chờ trong dòng công việc. Mỗi phần là một nhóm tác vụ được thực thi cùng nhau và mỗi phần có giới hạn thời gian riêng là 36 giờ. Ví dụ: nếu một dòng công việc có bước chờ trong một giờ, thì các tác vụ trước bước chờ sẽ được thực thi cùng nhau trong một phần và các tác vụ sau bước chờ sẽ được thực thi cùng nhau trong phần khác. Nếu dòng công việc có nhiều bước chờ, thì các tác vụ giữa mỗi bước chờ sẽ được thực thi cùng nhau trong một phần. Dòng công việc không có bước chờ được coi là một phần duy nhất.

Đôi khi gặp lỗi tạm thời là chuyện bình thường. Tuy nhiên, nếu một dòng công việc liên tục gặp cùng một lỗi tạm thời trong nhiều lần chạy, bạn có thể cần phải định cấu hình lại dòng công việc.

Bước đã hết thời gian chờ

Lỗi Step timed out thường xảy ra khi một tác vụ trong dòng công việc cố gắng truy vấn quá nhiều dữ liệu trong một phần. Lỗi này thường xuất hiện trong các dòng công việc lặp qua danh sách, đặc biệt là danh sách lồng ghép quá lớn để xử lý nhanh.

Khi lỗi này xảy ra, yếu tố kích hoạt hoặc bước chờ sẽ hiển thị là retrying.

Để giải quyết vấn đề này, hãy xem xét các điều kiện truy cập danh sách và danh sách lồng ghép để xác nhận rằng chúng được thiết lập đúng cách. Lỗi thường gặp là thiết lập điều kiện kiểm tra toàn bộ sản phẩm của cửa hàng, thay vì chỉ kiểm tra sản phẩm trong một đơn hàng.

Trạng thái 5XX

Hầu hết các thao tác của Flow đều liên quan đến việc thực hiện lệnh gọi HTTP. Đôi khi, sự cố mạng hoặc sự cố máy chủ khác có thể khiến lệnh gọi HTTP không thành công và trả về mã lỗi từ 500 đến 599. Lỗi này xảy ra một lần không phải là vấn đề, nhưng nếu lặp lại nhiều lần, điều đó có thể cho thấy sự cố ở máy chủ xử lý tác vụ, chứ không phải do cách định cấu hình bước đó.

Loại lỗi này thường hiển thị nhất ở thao tác Gửi yêu cầu HTTP, nhưng cũng có thể xảy ra trên hầu hết các tác vụ.

GraphQL bị điều tiết

Tổng khối lượng công việc hoàn thành bằng dòng công việc bị giới hạn bởi các giới hạn lưu lượng API, điều này một phần do gói đăng ký của bạn quyết định. Thông thường, dòng công việc không đạt đến các giới hạn này trừ khi dòng công việc đó quá phức tạp hoặc có lỗi thiết kế ngoài ý muốn.

Các ví dụ sau đây mô tả những tình huống có thể dẫn đến lỗi này:

  • Liquid hoặc các điều kiện trong dòng công việc lặp qua một danh sách có lượng dữ liệu lớn, chẳng hạn như kiểm tra các giá trị trường siêu dữ liệu có chứa HTML.
  • Liquid hoặc các điều kiện trong dòng công việc lặp qua một danh sách lớn, chẳng hạn như lặp qua shop.orders ở một cửa hàng lớn.
  • Một dòng công việc dẫn đến vòng lặp vô hạn, trong đó dòng công việc liên tục tạo các lần chạy dòng công việc mới. Ví dụ: tình trạng này có thể xảy ra nếu dòng công việc sử dụng yếu tố kích hoạt Đã thêm thẻ khách hàng và bao gồm thao tác Thêm thẻ khách hàng.

Nếu đạt đến giới hạn này, bạn sẽ nhận được lỗi GraphQL throttled. Lỗi này có thể ảnh hưởng đến các dòng công việc khác khi chúng cố gắng chạy, vì vậy hãy giải quyết lỗi này ngay khi xảy ra.

Lỗi vĩnh viễn

Lỗi vĩnh viễn là các lỗi xảy ra khi Flow không thể hoàn thành tác vụ và không thể thử lại tác vụ đó. Ví dụ: nếu Flow không thể gửi email do địa chỉ email không hợp lệ, Flow sẽ không thử lại tác vụ đó. Thay vào đó, dòng công việc sẽ không thành công.

Các trường: id là bắt buộc nhưng bị trống

Các thao tác Shopify yêu cầu một hoặc nhiều tài nguyên (chẳng hạn như sản phẩm, khách hàng hoặc đơn hàng) để chạy. Nếu không có sẵn tài nguyên cần thiết, thao tác sẽ không thể chạy như mong muốn. Ví dụ: bạn có thể tạo một đơn hàng trong bảng điều khiển quản trị Shopify mà không cần khách hàng. Nếu bạn chạy một thao tác như Thêm thẻ khách hàng, thao tác đó sẽ không thành công và báo lỗi này.

Để ngăn lỗi này, hãy thêm điều kiện trước thao tác để kiểm tra xem tài nguyên đó có tồn tại hay không. Trong ví dụ trước, nếu muốn gửi email nội bộ trong cùng một dòng công việc với thao tác Thêm thẻ khách hàng, bạn có thể đặt thao tác gửi email trước bước có thể không thành công hoặc sử dụng một trong các phương pháp sau:

Đặt các thao tác trong những nhánh song song (có 2 nhánh trở lên xuất phát từ một bước):

Ví dụ hiển thị hai thao tác song song sau một yếu tố kích hoạt.

Thêm điều kiện trước thao tác để kiểm tra xem có khách hàng hay không. Ví dụ: bạn có thể kiểm tra xem order / customer / id is not empty and exists.

Ví dụ hiển thị điều kiện tìm kiếm ID.

Flow không có quyền truy cập vào tài khoản Google Trang tính của bạn. Vui lòng kết nối lại tài khoản.

Trình kết nối Google Trang tính yêu cầu bạn liên kết tài khoản Google với Flow để có quyền ghi trên trang tính. Lỗi này có thể xảy ra khi Flow không có quyền ghi trên trang tính, do tài khoản đã bị hủy liên kết khỏi Flow hoặc do tài khoản đó không thể truy cập trang tính này.

Để giải quyết vấn đề này, hãy đảm bảo tài khoản được dùng cho trình kết nối có thể mở trang tính và có quyền chỉnh sửa. Nếu liên kết nhầm tài khoản, bạn có thể ngắt kết nối và kết nối tài khoản mới.

Các bước:

  1. Mở dòng công việc hiện có hoặc tạo dòng công việc mới.
  2. Thêm thao tác vào dòng công việc.
  3. Chọn trình kết nối Google Trang tính.
  4. Nhấp vào Ngắt kết nối, rồi nhấp vào Kết nối để kết nối lại đúng tài khoản Google.
Đã nhận thao tác Flow có thuộc tính không hợp lệ. Khách hàng không chấp nhận tiếp thị.

Thao tác Gửi email tiếp thị không gửi email cho những khách hàng chưa đồng ý nhận email và sẽ gặp lỗi vĩnh viễn nếu dòng công việc cố gắng thực hiện điều này.

Để giải quyết vấn đề này, hãy thêm điều kiện trong dòng công việc để kiểm tra trạng thái đăng ký của khách hàng. Bạn có thể đảm bảo khách hàng đã đồng ý nhận email tiếp thị trước khi gửi đi. Làm theo các bước trong mục Quản lý danh sách người đăng ký email.

Thiếu tài nguyên cho [resource type]

Lỗi này cho biết một tài nguyên (chẳng hạn như customer hoặc order) đã bị xóa trước khi dòng công việc có thể tìm nạp dữ liệu của tài nguyên đó. Tình trạng này thường xảy ra nhất sau một bước chờ, nhưng cũng có thể xảy ra trên yếu tố kích hoạt nếu tài nguyên bị xóa rất nhanh sau khi xảy ra sự kiện của yếu tố kích hoạt.

Nhận thông báo khi xảy ra lỗi

Nếu lỗi ảnh hưởng đến hoạt động của cửa hàng, bạn có thể thiết lập thông báo khi xảy ra lỗi. Bạn có thể tạo thông báo lỗi dưới dạng dòng công việc bằng yếu tố kích hoạt Workflow error occurred (Đã xảy ra lỗi dòng công việc). Thông báo lỗi được thiết kế để hạn chế làm phiền, vì vậy, bạn sẽ chỉ nhận được một thông báo cho mỗi phiên bản dòng công việc.

Để bắt đầu, bạn có thể sử dụng một trong các mẫu sau:

Thử lại các lần chạy

Trong một số trường hợp, lần chạy dòng công việc có thể gặp lỗi hoặc không chạy như dự kiến. Sau khi khắc phục sự cố và sửa lỗi trong dòng công việc liên quan, bạn có thể thử chạy lại theo cách thủ công đối với các lần chạy trước đó để khắc phục kết quả. Tìm hiểu thêm về cách thử lại lần chạy dòng công việc.

Đang chạy (bị giới hạn tốc độ)

Trong một số trường hợp, một hoặc nhiều dòng công việc có thể sử dụng quá nhiều tài nguyên. Để ngăn việc này gây ra sự cố, Flow sẽ cố ý giới hạn việc thực thi các lần chạy trên cửa hàng, điều này có thể gây ra chậm trễ và lỗi hết thời gian chờ. Có thể khắc phục tình trạng này bằng cách viết lại các dòng công việc không hiệu quả, thường là để sửa lỗi khiến dòng công việc hoạt động không đúng cách.

Chạy quá lâu

Thông báo này cho biết các lần chạy của một dòng công việc đang mất rất nhiều thời gian để thực thi. Nguyên nhân thường là do sử dụng lượng lớn dữ liệu trong một dòng công việc khiến Flow mất nhiều thời gian để tìm nạp.

Những trường hợp này thường do đường dẫn yêu cầu sâu đi qua nhiều danh sách mục (chẳng hạn như yêu cầu tất cả trường siêu dữ liệu cho tất cả sản phẩm trong tất cả bộ sưu tập có chứa sản phẩm đó):

Ví dụ về dòng công việc chạy quá lâu.

Sự cố này cũng thường liên quan đến việc bước yếu tố kích hoạt của dòng công việc bị hết thời gian chờ.

Bạn thường có thể cải thiện các dòng công việc lặp qua tất cả trường siêu dữ liệu bằng cách chỉ sử dụng một trường siêu dữ liệu cụ thể. Việc truy cập vào nhiều danh sách lồng nhau (chẳng hạn như tất cả sản phẩm trên tất cả bộ sưu tập của một sản phẩm) hoặc các danh sách đặc biệt lớn (chẳng hạn như định nghĩa trường thông tin bổ sung, trong đó chứa tất cả trường siêu dữ liệu cho mọi đối tượng) có thể do vô ý. Do đó, việc chọn đúng trường (sản phẩm duy nhất hoặc một trường siêu dữ liệu duy nhất trên một đối tượng) có thể cải thiện đáng kể hiệu suất. Trong các trường hợp khác, việc sử dụng thao tác "Get Product/Order/Customer Data" (Lấy dữ liệu sản phẩm/đơn hàng/khách hàng) cùng với bộ lọc truy vấn có thể giảm đáng kể số lượng đối tượng được sử dụng mà vẫn truy cập được vào các đối tượng liên quan.

Xử lý quá nhiều dữ liệu

Thông báo này cho biết các lần chạy dòng công việc đang tạo ra lượng dữ liệu lớn. Nguyên nhân phổ biến là do có các điều kiện phức tạp kiểm tra nhiều trường, thường là do kiểm tra trường trên nhiều lớp danh sách.

Ví dụ: một điều kiện như "Đối với ít nhất một thẻ trên khách hàng này, đối với ít nhất một mục hàng của đơn hàng, đối với ít nhất một thẻ trên mục hàng" có thể dẫn đến việc thực hiện rất nhiều bước kiểm tra và tạo ra lượng lớn dữ liệu để hiển thị kết quả:

Ví dụ về dòng công việc cố gắng xử lý quá nhiều dữ liệu.

Tự động thử lại không thành công

Thông báo này cho biết các lần chạy dòng công việc liên tục thất bại do một số sự cố tạm thời và thường không thành công trong những lần thử lại sau đó. Sự cố này thường xảy ra khi Admin API của Shopify hoặc ứng dụng của đối tác gặp phải khối lượng yêu cầu lớn.