Add error handling to action endpoint dispatchers
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 59s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 59s
Unhandled exceptions in action handlers were returned as opaque 400/500 by Quart's default error handler. Now we catch, log the full traceback, and return a JSON error body with 500 status so the caller gets useful diagnostics. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -26,8 +26,13 @@ def register() -> Blueprint:
|
|||||||
handler = _handlers.get(action_name)
|
handler = _handlers.get(action_name)
|
||||||
if handler is None:
|
if handler is None:
|
||||||
return jsonify({"error": "unknown action"}), 404
|
return jsonify({"error": "unknown action"}), 404
|
||||||
result = await handler()
|
try:
|
||||||
return jsonify(result)
|
result = await handler()
|
||||||
|
return jsonify(result)
|
||||||
|
except Exception as exc:
|
||||||
|
import logging
|
||||||
|
logging.getLogger(__name__).exception("Action %s failed", action_name)
|
||||||
|
return jsonify({"error": str(exc)}), 500
|
||||||
|
|
||||||
# --- adopt-cart-for-user ---
|
# --- adopt-cart-for-user ---
|
||||||
async def _adopt_cart():
|
async def _adopt_cart():
|
||||||
|
|||||||
@@ -26,8 +26,13 @@ def register() -> Blueprint:
|
|||||||
handler = _handlers.get(action_name)
|
handler = _handlers.get(action_name)
|
||||||
if handler is None:
|
if handler is None:
|
||||||
return jsonify({"error": "unknown action"}), 404
|
return jsonify({"error": "unknown action"}), 404
|
||||||
result = await handler()
|
try:
|
||||||
return jsonify(result)
|
result = await handler()
|
||||||
|
return jsonify(result)
|
||||||
|
except Exception as exc:
|
||||||
|
import logging
|
||||||
|
logging.getLogger(__name__).exception("Action %s failed", action_name)
|
||||||
|
return jsonify({"error": str(exc)}), 500
|
||||||
|
|
||||||
# --- adjust-ticket-quantity ---
|
# --- adjust-ticket-quantity ---
|
||||||
async def _adjust_ticket_quantity():
|
async def _adjust_ticket_quantity():
|
||||||
|
|||||||
@@ -26,8 +26,13 @@ def register() -> Blueprint:
|
|||||||
handler = _handlers.get(action_name)
|
handler = _handlers.get(action_name)
|
||||||
if handler is None:
|
if handler is None:
|
||||||
return jsonify({"error": "unknown action"}), 404
|
return jsonify({"error": "unknown action"}), 404
|
||||||
result = await handler()
|
try:
|
||||||
return jsonify(result)
|
result = await handler()
|
||||||
|
return jsonify(result)
|
||||||
|
except Exception as exc:
|
||||||
|
import logging
|
||||||
|
logging.getLogger(__name__).exception("Action %s failed", action_name)
|
||||||
|
return jsonify({"error": str(exc)}), 500
|
||||||
|
|
||||||
# --- create-marketplace ---
|
# --- create-marketplace ---
|
||||||
async def _create_marketplace():
|
async def _create_marketplace():
|
||||||
|
|||||||
Reference in New Issue
Block a user