Comfy-Org / Comfy-Org/ComfyUI

Seedance API sensitive-content failures should not abort concurrent task batches

Open
#13,883 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.