{"record":{"id":"aa1818953a28e17f","repo":"sgl-project/sglang","slug":"mesh-not-found","errorCode":null,"errorMessage":"Mesh not found","messagePattern":"Mesh not found","errorType":"http","errorClass":"HTTPException","httpStatus":404,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/entrypoints/openai/mesh_api.py","lineNumber":241,"sourceCode":"    return MeshResponse(**job)\n\n\n@router.get(\"\", response_model=MeshListResponse)\nasync def list_meshes(\n    after: Optional[str] = Query(None),\n    limit: Optional[int] = Query(None, ge=1, le=100),\n    order: Optional[str] = Query(\"desc\"),\n):\n    jobs = await MESH_STORE.list_page(after=after, limit=limit, order=order)\n    items = [MeshResponse(**job) for job in jobs]\n    return MeshListResponse(data=items)\n\n\n@router.get(\"/{mesh_id}\", response_model=MeshResponse)\nasync def retrieve_mesh(mesh_id: str = Path(...)):\n    job = await MESH_STORE.get(mesh_id)\n    if not job:\n        raise HTTPException(status_code=404, detail=\"Mesh not found\")\n    return MeshResponse(**job)\n\n\n@router.delete(\"/{mesh_id}\", response_model=MeshResponse)\nasync def delete_mesh(mesh_id: str = Path(...)):\n    job = await MESH_STORE.pop(mesh_id)\n    if not job:\n        raise HTTPException(status_code=404, detail=\"Mesh not found\")\n    job[\"status\"] = \"deleted\"\n    return MeshResponse(**job)\n\n\n@router.get(\"/{mesh_id}/content\")\nasync def download_mesh_content(\n    mesh_id: str = Path(...), variant: Optional[str] = Query(None)\n):\n    job = await MESH_STORE.get(mesh_id)\n    if not job:","sourceCodeStart":223,"sourceCodeEnd":259,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/entrypoints/openai/mesh_api.py#L223-L259","documentation":"GET on /mesh/{mesh_id} looked up the job in MESH_STORE and found nothing, returning HTTP 404. Either the id was never issued, the job expired, or it was deleted.","triggerScenarios":"Polling GET /v1/mesh/{mesh_id} with an id that does not exist in the in-memory store (typo, expired entry, or server restart wiping the store).","commonSituations":"Server restarted (MESH_STORE is in-memory), job TTL cleanup removed it, copy/paste error in the id, or polling after a DELETE.","solutions":["Check the id against the one returned by the POST that created the job","If the server restarted, re-submit the generation request","Confirm the job hasn't been deleted via DELETE /{mesh_id}"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"job = (await client.get(f'/v1/mesh/{mesh_id}')).json()\nif job.get('detail') == 'Mesh not found': re_submit = True","typeGuard":null,"tryCatchPattern":"if resp.status_code == 404:\n    # job lost (restart/TTL): re-submit the generation request","preventionTips":["Persist create-response ids durably","Expect in-memory store to reset on restart"],"tags":["http","not-found","mesh-generation","job-store"],"backgroundTag":"resource-not-found","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}