HKUDS/DeepTutor · error · HTTPException
Skill already exists: {exc}
Error message
Skill already exists: {exc} What it means
Error "Skill already exists: {exc}" thrown in HKUDS/DeepTutor.
Source
Thrown at deeptutor/api/routers/skills.py:257
(``suspicious`` verdict abort, safe extraction, ``always`` stripping)
lives in :func:`deeptutor.services.skill.hub.install_from_hub`.
"""
import asyncio
from deeptutor.services.skill.hub import HubError, install_from_hub
service = get_skill_service()
try:
outcome = await asyncio.to_thread(
install_from_hub,
payload.ref,
service=service,
rename_to=payload.name,
force=payload.force,
allow_unverified=payload.allow_unverified,
)
except SkillExistsError as exc:
raise HTTPException(status_code=409, detail=f"Skill already exists: {exc}")
except (SkillImportError, InvalidSkillNameError) as exc:
raise HTTPException(status_code=400, detail=str(exc))
except HubError as exc:
raise HTTPException(status_code=502, detail=str(exc))
return {
"skill": outcome.result.info.to_dict(),
"verdict": {"status": outcome.verdict.status, "detail": outcome.verdict.detail},
"version": outcome.ref.version,
}
@router.put("/{name}")
async def update_skill(name: str, payload: UpdateSkillRequest) -> dict[str, object]:
service = get_skill_service()
try:
info = service.update(
name,View on GitHub (pinned to 3e82f13042)
When it happens
Trigger: Thrown at deeptutor/api/routers/skills.py:257 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of HKUDS/DeepTutor@3e82f13042 (2026-08-27).
Data as JSON: /api/errors/475df9e5d5b37cce.
Report an issue: GitHub.