ATH-MaaS/Pixelle-Video · error · Exception
The second step workflow file does not exist:{second_workflo
Error message
The second step workflow file does not exist:{second_workflow_path} What it means
generate_digital_human_video in web/pipelines/digital_human.py loads a two-stage pipeline; at the concatenation stage it resolves Path from video_params['second_workflow_path'] and raises if the file does not exist before reading its JSON.
Source
Thrown at web/pipelines/digital_human.py:641
"inference_mode": tts_inference_mode
}
if tts_inference_mode == "local":
tts_kwargs["voice"] = tts_voice
tts_kwargs["speed"] = tts_speed
elif tts_inference_mode == "comfyui":
if tts_workflow:
tts_kwargs["workflow"] = tts_workflow
if ref_audio:
tts_kwargs["ref_audio"] = ref_audio
await pixelle_video.tts(**tts_kwargs)
progress_bar.progress(65)
status_text.text(tr("progress.concatenating"))
# Directly call the second workflow
second_workflow_path = Path(workflow_path.get("second_workflow_path"))
if not second_workflow_path.exists():
raise Exception(f"The second step workflow file does not exist:{second_workflow_path}")
with open(second_workflow_path, 'r', encoding='utf-8') as f:
second_workflow_config = json.load(f)
second_workflow_params = {
"videoimage": generated_image_path,
"audio": audio_path
}
if second_workflow_config.get("source") == "runninghub" and "workflow_id" in second_workflow_config:
workflow_input = second_workflow_config["workflow_id"]
else:
workflow_input = str(second_workflow_config)
second_result = await kit.execute(workflow_input, second_workflow_params)
# Video Link Extraction
generated_video_url = None
if hasattr(second_result, 'videos') and second_result.videos:
generated_video_url = second_result.videos[0]
elif hasattr(second_result, 'outputs') and second_result.outputs:
for node_id, node_output in second_result.outputs.items():
if isinstance(node_output, dict) and 'videos' in node_output:View on GitHub (pinned to 848b054e4f)
Solutions
- Check that second_workflow_path in the settings points to an existing file and correct it
- Use an absolute path for second_workflow_path to avoid working-directory issues
- Restore or re-download the missing second-step workflow JSON
- Verify file permissions allow the app process to read the path
Example fix
// before "second_workflow_path": "workflows/dh_step2_old.json" # missing // after "second_workflow_path": "/abs/path/workflows/dh_step2.json" # exists
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
p = Path(video_params["second_workflow_path"])
if not p.is_file():
raise FileNotFoundError(f"Second-step workflow missing: {p.resolve()}") Try / catch
try:
await generate_digital_human_video(...)
except Exception as e:
if "second step workflow file does not exist" in str(e):
st.error(f"Second workflow not found: {e}; fix second_workflow_path in settings.") Prevention
- Use absolute paths for second_workflow_path in settings
- Validate both workflow paths exist when saving pipeline settings
- Keep the stock second-step workflow JSONs installed and versioned
- Re-check paths after moving the project or switching machines
When it happens
Trigger: The two-step digital human flow reaches ~65% progress, then Path(second_workflow_path).exists() is False — the second workflow JSON path is misconfigured, the file was moved/deleted, or a relative path no longer resolves from the current working directory.
Common situations: Settings pointing at a workflow file that was renamed; migrating machines without copying the second workflow; using a relative path while launching the app from another directory.
Related errors
- The workflow file does not exist: {workflow_path}
- No default workflow configured for {self.service_name}. Plea
- Resource not found: {os.path.join(resource_type, *paths)}
- Template not found: {size}/{template_name} Available templat
- Template not found: {size}/{template_name} Available sizes:
AI-assisted analysis of ATH-MaaS/Pixelle-Video@848b054e4f (2026-08-30).
Data as JSON: /api/errors/1a7a5083469524b7.
Report an issue: GitHub.