Devolutions/UniGetUI · warning · InvalidOperationException
Unsupported queue action "{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).
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)
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
- tailLines must be greater than or equal to zero.
- Only queued operations can be reordered.
- Only queued or running operations can be canceled.
- Running or queued operations cannot be retried.
- Retry mode "{retryMode}" is not supported for operation {ope
AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13).
Data as JSON: /api/errors/fb1df07009abf0f1.
Report an issue: GitHub.