{"record":{"id":"17883e784caf32c0","repo":"odysseus-dev/odysseus","slug":"failed-to-save-signature-e","errorCode":null,"errorMessage":"Failed to save signature: {e}","messagePattern":"Failed to save signature: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"routes/signature_routes.py","lineNumber":126,"sourceCode":"        sig = Signature(\n            id=str(uuid.uuid4()),\n            owner=user,\n            name=(req.name or \"Signature\").strip() or \"Signature\",\n            data_png=b64,\n            width=width,\n            height=height,\n            svg=None,\n        )\n        db = SessionLocal()\n        try:\n            db.add(sig)\n            db.commit()\n            db.refresh(sig)\n            return _to_dict(sig)\n        except Exception as e:\n            db.rollback()\n            logger.error(f\"Failed to save signature: {e}\")\n            raise HTTPException(500, f\"Failed to save signature: {e}\")\n        finally:\n            db.close()\n\n    @router.delete(\"/api/signatures/{sig_id}\")\n    async def delete_signature(sig_id: str, request: Request) -> Dict[str, Any]:\n        user = get_current_user(request)\n        db = SessionLocal()\n        try:\n            sig = db.query(Signature).filter(Signature.id == sig_id).first()\n            if not sig:\n                raise HTTPException(404, \"Signature not found\")\n            if user and sig.owner != user:\n                raise HTTPException(403, \"Not your signature\")\n            db.delete(sig)\n            db.commit()\n            return {\"deleted\": sig_id}\n        except HTTPException:\n            raise","sourceCodeStart":108,"sourceCodeEnd":144,"githubUrl":"https://github.com/odysseus-dev/odysseus/blob/f9235ebbf13f693a6fd29ce70b097f6ec83705bf/routes/signature_routes.py#L108-L144","documentation":"Error \"Failed to save signature: {e}\" thrown in odysseus-dev/odysseus.","triggerScenarios":"Triggered when the corresponding server-side validation or runtime check at the recorded location rejects the request or operation and returns this error message to the caller.","commonSituations":"See trigger scenarios.","solutions":["Retry saving; check server logs for storage errors.","Verify the signatures storage directory is writable."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f9235ebbf13f693a6fd29ce70b097f6ec83705bf","analyzedAt":"2026-08-14T21:47:48.359Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}