Shift Trade API 400 Bad Request when Agent Self-Service Overlaps with Manual Override

Trying to understand the specific validation logic behind the /api/v2/wfm/schedule/shifttrades endpoint when dealing with complex shift configurations. We are currently running Genesys Cloud version 2023-12, and our workforce management team publishes schedules every Thursday for the upcoming week. Most of our agents use the Agent Portal to request shift swaps, which generally works fine. However, we are seeing a recurring 400 Bad Request error when an agent attempts to trade a shift that was previously manually overridden by a supervisor via the Schedule Builder UI.

The error payload returns a validationError with the message: “Cannot create trade for shift with manual override constraints.” This is problematic because our agents often need to swap shifts that supervisors had adjusted for coverage reasons. We have verified that the agents have the correct wfm:shift:trade permissions and that their schedules are published. The issue seems to stem from the fact that the API does not allow a trade to be initiated if the original shift object has the manualOverride flag set to true, even if the agent is swapping with another agent who also has a manually overridden shift. We have tried clearing the override before the swap, but that breaks the adherence tracking for the original supervisor’s adjustments.

Is there a specific sequence of API calls required to temporarily lift the manual override, process the trade, and then re-apply the constraints? Or is there a configuration setting in the WFM settings that allows trades to bypass manual override locks? We need a reliable way to handle these swaps without reverting to email chains or manual schedule rebuilds, which defeats the purpose of the self-service portal. Any insights on how other intermediate WFM teams handle this conflict between supervisor control and agent flexibility would be greatly appreciated.