bytedance/deer-flow · error · HTTPException
Failed to reload skill '{skill_name}' after update
Error message
Failed to reload skill '{skill_name}' after update What it means
Error "Failed to reload skill '{skill_name}' after update" thrown in bytedance/deer-flow.
Source
Thrown at backend/app/gateway/routers/skills.py:551
# invalidated. CUSTOM/LEGACY skill state is per-user so only that
# user's cache needs to be dropped.
if skill.category == SkillCategory.PUBLIC:
# clear_skills_system_prompt_cache is sync; run it in a worker
# thread to avoid blocking the event loop. The lock inside it is
# cheap, but the async drop also keeps the test mock surface
# consistent (tests patch the async variant).
await asyncio.to_thread(clear_skills_system_prompt_cache)
else:
await refresh_user_skills_system_prompt_cache_async(get_effective_user_id())
def _reload_skills() -> list[Skill]:
return _get_user_skill_storage(config).load_skills(enabled_only=False)
skills = await asyncio.to_thread(_reload_skills)
updated_skill = next((s for s in skills if s.name == skill_name), None)
if updated_skill is None:
raise HTTPException(status_code=500, detail=f"Failed to reload skill '{skill_name}' after update")
logger.info(f"Skill '{skill_name}' enabled status updated to {body.enabled}")
return _skill_to_response(updated_skill)
except HTTPException:
raise
except Exception as e:
logger.error(f"Failed to update skill {skill_name}: {e}", exc_info=True)
raise HTTPException(status_code=500, detail=f"Failed to update skill: {str(e)}")
View on GitHub (pinned to 1dd6ba1acb)
Solutions
- Check the skill's content for syntax or schema errors that prevent reload.
- Restart the Gateway to force a clean skill reload, then reapply the update.
When it happens
Trigger: Thrown at backend/app/gateway/routers/skills.py:551 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of bytedance/deer-flow@1dd6ba1acb (2026-08-14).
Data as JSON: /api/errors/a4d4111b7f27034c.
Report an issue: GitHub.