Comfy-Org/ComfyUI · error · RuntimeError
Beeble job {response.id} completed without a {name!r} output
Error message
Beeble job {response.id} completed without a {name!r} output URL. What it means
After the switchX generation job reports completion, the node requires a URL for the expected output asset (by name). If response.output is None or the named field on it is None, the job finished in a state that produced no downloadable asset and the node raises RuntimeError instead of following a dead link.
Source
Thrown at comfy_api_nodes/nodes_beeble.py:185
) -> SwitchXStatusResponse:
initial = await sync_op(
cls,
ApiEndpoint(path="/proxy/beeble/v1/switchx/generations", method="POST"),
response_model=SwitchXStatusResponse,
data=request,
)
return await poll_op(
cls,
ApiEndpoint(path=f"/proxy/beeble/v1/switchx/generations/{initial.id}"),
response_model=SwitchXStatusResponse,
status_extractor=lambda r: r.status,
progress_extractor=lambda r: r.progress,
)
def _require_output_url(response: SwitchXStatusResponse, name: str) -> str:
if response.output is None or getattr(response.output, name) is None:
raise RuntimeError(f"Beeble job {response.id} completed without a {name!r} output URL.")
return getattr(response.output, name)
def _alpha_url(response: SwitchXStatusResponse, mode: str) -> str | None:
"""URL of the alpha matte, or None when the mode produces no separate matte.
'fill' selects the whole frame, so Beeble writes no alpha asset even though the status
response still returns a (dangling) signed URL for it — fetching it 403s with S3
AccessDenied. The other three modes ('auto', 'custom', 'select') all produce a real,
downloadable matte.
"""
if mode == "fill" or response.output is None:
return None
return response.output.alpha
class BeebleSwitchXVideoEdit(IO.ComfyNode):
View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Retry the generation — transient Beeble completion without assets usually succeeds on a second run.
- Check the job status response in the Beeble dashboard/API for the actual outputs produced by your mode/parameters.
- Verify you requested parameters consistent with the output (e.g. alpha modes other than 'fill' produce a matte).
- If persistent, report to Beeble with the job id embedded in the message.
Example fix
# before
url = _require_output_url(response, "video") # RuntimeError when asset missing
# after
for attempt in range(2):
response = run_beeble_job(params)
if response.output and getattr(response.output, "video", None):
break
url = response.output.video Defensive patterns
Strategy: retry
Validate before calling
if response.status == "completed":
assert response.output is not None and getattr(response.output, name, None), "missing asset; retry job" Type guard
def job_has_output(response, name: str) -> bool:
return response.output is not None and getattr(response.output, name, None) is not None Try / catch
for attempt in range(3):
try:
url = _require_output_url(response, name)
break
except RuntimeError:
if attempt == 2:
raise
response = await run_beeble_job(params) Prevention
- Treat 'completed without asset' as transient first; retry once before debugging.
- Log the job id from the error for Beeble support.
- Confirm the requested output name exists for the chosen mode.
When it happens
Trigger: poll_op on /proxy/beeble/v1/switchx/generations/{id} returns a terminal status whose output object lacks the requested field (e.g. requesting an alpha URL from a mode that did not generate one, or a Beeble server-side partial completion).
Common situations: Beeble-side pipeline failure that still marks the job done; requesting an output name not produced by the chosen mode; API schema changes dropping fields.
Related errors
- At least one of 'prompt' or 'reference_image' must be provid
- Custom alpha video frame count ({mask.shape[0]}) does not ma
- Seedance session {session.session_id} completed without a gr
- ByteDance request failed. Code: {response.error['code']}, me
- Krea 2 job {job.job_id} completed without any image URLs.
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/9f02daa4e9bae6e5.
Report an issue: GitHub.