import traceback from flask import jsonify from werkzeug.exceptions import HTTPException from pydantic import ValidationError import traceback from bson.errors import InvalidId def register_error_handlers(app): @app.errorhandler(ValidationError) def handle_validation_error(e): return jsonify({"error": e.errors()}), 400 @app.errorhandler(InvalidId) def handle_invalid_id_error(e): return jsonify({"error": "Invalid ID format"}), 400 @app.errorhandler(HTTPException) def handle_http_exception(e): return jsonify({"error": e.description}), e.code @app.errorhandler(Exception) def handle_unexpected_exception(e): app.logger.error(traceback.format_exc()) return jsonify({"error": str(e)}), 500