Seedance API sensitive-content failures should not abort concurrent task batches
- Dominant language
- Python
- Stars
- 133k
- Forks
- 15.7k
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 158
Description
## Summary
When using the ByteDance / Seedance API node with `generate_audio: true`, the remote task can fail with a content moderation error such as `OutputAudioSensitiveContentDetected`. At the moment this failed task is surfaced as a polling exception, which aborts the ComfyUI execution path and can interrupt multi-task / batched workflows.
It would be useful if this class of expected API-side moderation failure could be handled as a controlled node failure or passthrough/empty-output result instead of raising a generic polling exception that stops the whole batch.
## Observed behavior
The API returns a failed task status:
```text
Task failed: {"id": "cgt-20260514101521-nk5ct", "model": "dreamina-seedance-2-0-260128", "status": "failed", "error": {"code": "OutputAudioSensitiveContentDetected", "message": "The request failed because the output audio may contain sensitive information. Request id: 02177872492196700000000000000000000ffffc0a87832ba9e04"}, "generate_audio": true}
```
ComfyUI then aborts polling and raises:
```text
Exception: Polling aborted due to error: Task failed: {... "code": "OutputAudioSensitiveContentDetected" ...}
```
Relevant stack trace locations from the local checkout:
```text
comfy_api_nodes/util/client.py:405 poll_op_raw
comfy_api_nodes/util/client.py:436 poll_op_raw
comfy_api_nodes/nodes_bytedance.py:2144 execute
execution.py:454 execute
```
Local checkout information:
```text
branch: master
commit: 300b6c8c9
```
## Expected behavior
For known provider-side moderation failures such as `OutputAudioSensitiveContentDetected`, the node should provide a non-crashing path, for example:
- return a clear error result for that single task without aborting unrelated parallel tasks;
- optionally expose a setting such as `on_api_failure = error | empty_output | passthrough`;
- mark the failed Seedance result as skipped/blocked while allowing the rest of the workflow batch to continue;
- preserve the provider error code and request id in the UI/logs for debugging.
## Why this matters
In multi-threaded or batched generation workflows, one Seedance output being blocked by remote audio moderation should not necessarily cancel the entire run. A controlled passthrough/empty-output behavior would make large batches more reliable while still making the moderation failure visible to the user.
## Notes
This seems especially relevant when `generate_audio` is enabled. The visual/video generation may be acceptable, but the generated audio can independently trigger provider-side moderation and cause the whole task to fail.
Contributor guide
Assessment
This issue has not been assessed yet.