ATH-MaaS/Pixelle-Video · error · ValueError
Failed to parse size from path: {template_path}. Expected fo
Error message
Failed to parse size from path: {template_path}. Expected format: 'WIDTHxHEIGHT/template.html' (e.g., '1080x1920/default.html'). Error: {e} What it means
The int(width_str)/int(height_str) conversions and the bounds check inside parse_template_size run in a try block; any ValueError they raise is caught and re-raised as ValueError('Failed to parse size from path: ... Error: ...') with the original message appended. It means the directory name looked like WxH but the halves were not clean integers (or the bounds check tripped).
Source
Thrown at pixelle_video/utils/template_util.py:84
# Parse size from directory name
if 'x' not in dir_name:
raise ValueError(
f"Invalid size format in path: {template_path}. "
f"Directory name should be 'WIDTHxHEIGHT' (e.g., '1080x1920')"
)
try:
width_str, height_str = dir_name.split('x')
width = int(width_str)
height = int(height_str)
# Sanity check
if width < 100 or height < 100 or width > 10000 or height > 10000:
raise ValueError(f"Invalid size dimensions: {width}x{height}")
return (width, height)
except ValueError as e:
raise ValueError(
f"Failed to parse size from path: {template_path}. "
f"Expected format: 'WIDTHxHEIGHT/template.html' (e.g., '1080x1920/default.html'). "
f"Error: {e}"
)
def list_available_sizes() -> List[str]:
"""
List all available video sizes (merged from templates/ and data/templates/)
Returns:
List of size strings like ["1080x1920", "1920x1080", "1080x1080"]
Examples:
>>> list_available_sizes()
['1080x1920', '1920x1080', '1080x1080']
"""
# Use new resource API to merge default and custom directoriesView on GitHub (pinned to 848b054e4f)
Solutions
- Rename the directory so both sides are plain integers: '1080x1920'.
- Strip unit suffixes/whitespace/separators from the directory name.
- Read the appended 'Error:' text to see the underlying cause (int parse failure vs dimension bounds).
- Normalize the path programmatically (regex ^\d+x\d+$) before calling the renderer.
Example fix
// before templates/1080x1920px/default.html // after templates/1080x1920/default.html
Defensive patterns
Strategy: validation
Validate before calling
import re
from pathlib import Path
WxH_RE = re.compile(r"^(\d{3,5})x(\d{3,5})$")
def dir_parses_as_ints(template_path: str) -> bool:
return bool(WxH_RE.fullmatch(Path(template_path).parent.name)) Type guard
def try_parse_size(template_path: str):
m = WxH_RE.fullmatch(Path(template_path).parent.name)
if not m:
return None
w, h = int(m.group(1)), int(m.group(2))
return (w, h) if 100 <= w <= 10000 and 100 <= h <= 10000 else None Try / catch
try:
w, h = parse_template_size(template_path)
except ValueError as e:
logger.error("Size parse failed for %s: %s", template_path, e) # underlying cause in 'Error:' suffix
raise Prevention
- Use bare integers in directory names — no 'px', spaces, underscores, or separators
- Regex-validate directory names as ^\d+x\d+$ before use
- Read the wrapped 'Error:' detail to distinguish int-parse failures from bounds failures
- Standardize directory creation through a helper that formats sizes
When it happens
Trigger: Directory names like '1080x1920px', '10 80x1920', '1080x1_920', or '1080x' where int() fails on one side; also the bounds-check ValueError from entry 147 gets wrapped by this message.
Common situations: Units or suffixes in folder names ('1920pxx1080px'); thousands separators or underscores in dimensions; localized digit characters; accidentally doubling this error with 'Invalid size dimensions' when bounds fail.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
Related errors
- Invalid template path format: {template_path}. Expected form
- Invalid size format in path: {template_path}. Directory name
- frame_template is required to determine media size
- Progress must be between 0.0 and 1.0, got {self.progress}
- No assets provided. Please upload at least one image or vide
AI-assisted analysis of ATH-MaaS/Pixelle-Video@848b054e4f (2026-08-30).
Data as JSON: /api/errors/788ed911af549bce.
Report an issue: GitHub.