ATH-MaaS/Pixelle-Video · error · RuntimeError
DashScope image edit returned no image URLs. output={getattr
Error message
DashScope image edit returned no image URLs. output={getattr(response, 'output', None)} What it means
Mirrors error 46 for the edit path: DashScope returns status 200 but no image URLs can be extracted from response.output, so edit_image raises this RuntimeError.
Source
Thrown at pixelle_video/services/api_services/image_dashscope.py:171
}
]
try:
# Use ImageGeneration.call with messages, same as generate_image
with self._proxy_env():
response = ImageGeneration.call(
model=model,
api_key=self.api_key,
messages=messages,
n=n,
size=size,
watermark=False,
)
if response.status_code == 200:
results = self._extract_image_urls(getattr(response, "output", None))
if not results:
raise RuntimeError(f"DashScope image edit returned no image URLs. output={getattr(response, 'output', None)}")
# Check if we should download
if save_dir:
os.makedirs(save_dir, exist_ok=True)
local_files = []
for i, url in enumerate(results):
file_name = f"ds_{session_id if session_id else 'nosess'}_{int(time.time())}_{i}_{uuid.uuid4().hex[:6]}.png"
file_path = os.path.join(save_dir, file_name)
if self.image_processor.download_image(url, file_path):
local_files.append(file_path)
return local_files
return results
else:
raise RuntimeError(f"Image edit failed: {response.code}, {response.message}, status={response.status_code}")
except Exception as e:
logging.error(f"Error in edit_image: {e}")
raiseView on GitHub (pinned to 848b054e4f)
Solutions
- Inspect and log response.output for the actual payload
- Retry with backoff to allow async task completion
- Update the dashscope SDK and re-check _extract_image_urls parsing
- Validate input image URLs are publicly reachable and supported formats
Example fix
// before res = gen.edit_image(prompt=p, image_urls=[local_path]) // after res = gen.edit_image(prompt=p, image_urls=["https:// publicly-reachable/img.png"])
Defensive patterns
Strategy: retry
Validate before calling
for url in image_urls:
assert url.startswith(("http://", "https://")), f"unreachable image url: {url}" Try / catch
for attempt in range(3):
try:
return gen.edit_image(prompt=p, image_urls=urls)
except RuntimeError as e:
if "returned no image URLs" in str(e) and attempt < 2:
time.sleep(2 ** attempt)
continue
raise Prevention
- Poll async edit tasks until completion before reading output
- Validate input image URLs are publicly reachable
- Log response.output to catch schema drift early
When it happens
Trigger: Calling edit_image where the provider acknowledges the request (200) but output contains no image URLs — e.g. async task not finished, schema mismatch, or zero successful edits.
Common situations: Polling an async edit task too early; DashScope SDK/API schema drift; images rejected silently; account limits yielding empty results.
Related errors
- DashScope image generation returned no image URLs. output={g
- API VLM analysis returned empty description
- API image generation returned no result: provider={provider}
- DashScope generation failed: {e}
- Image generation failed: {response.code}, {response.message}
AI-assisted analysis of ATH-MaaS/Pixelle-Video@848b054e4f (2026-08-30).
Data as JSON: /api/errors/6a3ec6055154b8d9.
Report an issue: GitHub.