Usually the socket doesn't know which task to follow, or started listening too late. Check these:
Token: connect to
wss://socket.wiro.ai/v1and send{"type": "task_info", "tasktoken": "..."}with thesocketaccesstokenfrom the Run response, not thetaskid. A missing token returnstoken-invalid; a wrong one is accepted but receives nothing. There's no test token, so run a cheap model to get one.Timing: register right after Run. Earlier events aren't replayed, so a finished task sends nothing; get its result from Task/Detail.
Final event: don't stop at
task_end. Wait fortask_postprocess_end:exitCode0means success, andmessageholds the outputs. A cancelled task ends withtask_cancelinstead.task_errorisn't a failure, so keep listening.Reconnects: send
task_infoagain, and use Task/Detail for anything you missed.
Don't need live updates? Polling Task/Detail or a callbackUrl is simpler. Details: WebSocket flow and message types.
