Every run creates a task that starts in the queue. You can stop a Queued or Running task yourself, and time in the queue is never charged.
Full reference: Task Lifecycle in our docs lists every step, and our guide to task statuses explains each label.
What "Queued" means
Queued covers two API statuses:
task_queue(waiting for a server) andtask_accept(a server has just picked it up). Then the task shows Running.For models priced per second, billing starts when a server picks the task up. Preparing inputs and loading the model count; queue time doesn't. See how model pricing works.
Why a task can wait
No server is free yet. Wiro doesn't show a queue position or wait estimate.
It was requeued. If a task's server restarts before the task has fully finished, Wiro can queue it again.
Your concurrency limit doesn't make tasks wait. With a balance of $250 or less, a run over the limit is rejected at once with code 96 (You have reached your concurrent task limit...) and no task is created. Queued tasks count toward the limit until they finish or are cancelled. Above $250 there's no limit. See How many tasks can I run at the same time?
Stop a task on the website
Open Task History (pick Runnings for unfinished tasks), a model page's History tab, or the Activity panel (the lightning icon, top right).
On a Queued or Running task, click the x icon (tooltip Kill Task).
In the Kill Task window, click Kill.
There's no separate cancel button: Kill Task cancels a task still waiting in the queue. Either way you see "Task is successfully killed." and the task shows Cancelled.
Stop a task with the API
Task/Cancel stops a task still waiting in the queue. Try it first. Send
taskid.Task/Kill is for a task a server has picked up or that's running. Send
taskidorsocketaccesstoken.
curl -X POST "https://api.wiro.ai/v1/Task/Cancel" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"taskid": "YOUR_TASK_ID"}'
For Kill, use /v1/Task/Kill with the same body. Signature Based projects also send x-nonce and x-signature (see Authentication). Both return "result": true on success. Common errors:
Task is not in a cancellable state.(code 1): a server has already picked the task up (even if it still shows Queued), or the task has finished. If it's still running, use Task/Kill.Task could not be killed: Process ended(code 1): the task has already finished.There is no task yet.orYou don't have any permission for this action.: the task ID is wrong, or the task isn't yours or your team's.
Details: Task Cancel and Task Kill in our docs, and what your API error means.
Am I charged for a cancelled or killed task?
Cancelled while queued: not charged. The model never ran.
Killed while running: normally not charged, because stopping the model counts as an error. If the model had already succeeded when the kill arrived, the run is charged, and the task can show Cancelled with a cost.
Realtime voice sessions: turns charged during the session stay charged.
For Wiro Studio chat and the full rules, see Why does my task say "No output generated"?
Why does the API feel slow?
A result takes the queue wait plus the model's run time. The Run request doesn't wait: it returns a taskid and socketaccesstoken as soon as the task is created. Then poll Task/Detail (every 3 seconds at first, less often for long tasks), follow the task over a WebSocket, or add a webhook callback (callbackUrl) and Wiro POSTs the result when the task completes. See How do I make my first API request?
When to contact support
If a task stays Queued much longer than usual, or shows Cancelled although no one stopped it, send us the task ID (the number after # in Task History) and the model name through the chat on wiro.ai or at [email protected]. API users can send the task token instead. If it finished without a result, see How do I find out why my task failed or has no output?
