Devolutions/UniGetUI · warning · InvalidOperationException
Unsupported queue action
Error message
Unsupported queue action "{action}". What it means
Thrown by ReorderOperation when the action parameter does not normalize to one of 'run-now', 'run-next', or 'run-last'. NormalizeQueueAction trims and lower-cases the input before matching; any value outside the three accepted strings triggers this error (it also throws from NormalizeQueueAction itself with the same message, so the throw site depends on code path).
Solutions
- Use one of: 'run-now', 'run-next', 'run-last' (case-insensitive).
- Read AvailableQueueActions from GetOperation to see exactly which actions are valid.
- Add client-side validation against the AvailableQueueActions list before calling.
Example fix
// before IpcOperationApi.ReorderOperation(opId, "priority-high"); // after IpcOperationApi.ReorderOperation(opId, "run-now");
Defensive patterns
Strategy: validation
Validate before calling
static readonly HashSet<string> ValidQueueActions = new(StringComparer.OrdinalIgnoreCase)
{
"run-now", "run-next", "run-last"
};
if (!ValidQueueActions.Contains(action))
throw new ArgumentException($"Invalid queue action: {action}. Valid: run-now, run-next, run-last"); Prevention
- Use only 'run-now', 'run-next', or 'run-last' (case-insensitive).
- Read AvailableQueueActions from IpcOperationInfo for the authoritative valid set.
- Normalize action strings to lowercase before sending.
When it happens
Trigger: Calling ReorderOperation with an action string that is not 'run-now', 'run-next', or 'run-last' (case-insensitive after trimming). Whitespace-only or null action throws ArgumentException from NormalizeQueueAction instead.
Common situations: Client sends a free-text action like 'cancel' or 'priority' to the reorder endpoint. Typo in the action string. Using a queue action from a different API version that was renamed. The AvailableQueueActions list on IpcOperationInfo provides the authoritative valid values.
Related errors
- Only queued operations can be reordered.
- tailLines must be greater than or equal to zero.
- Only queued or running operations can be canceled.
- Retry mode " " is not supported for operation .
- Running or queued operations cannot be forgotten.
AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13).
Data as JSON: /api/errors/fb1df07009abf0f1.
Report an issue: GitHub.
Appendix: source
Thrown at src/UniGetUI.Interface.IpcApi/IpcOperationApi.cs:255
{
throw new InvalidOperationException(
"Only queued operations can be reordered."
);
}
switch (NormalizeQueueAction(action))
{
case "run-now":
tracked.Operation.SkipQueue();
break;
case "run-next":
tracked.Operation.RunNext();
break;
case "run-last":
tracked.Operation.BackOfTheQueue();
break;
default:
throw new InvalidOperationException($"Unsupported queue action \"{action}\".");
}
return IpcCommandResult.Success("reorder-operation");
}
public static IpcCommandResult ForgetOperation(string operationId)
{
var tracked = GetTrackedOperation(operationId);
if (IsActive(tracked.Operation.Status))
{
throw new InvalidOperationException(
"Running or queued operations cannot be forgotten."
);
}
ForgetTracking(operationId);
return IpcCommandResult.Success("forget-operation");
}View on GitHub (pinned to 9b1d7d0eab)