From 99ea5e5641f8b480bfac6320f5fc12884b12fef0 Mon Sep 17 00:00:00 2001 From: "mw-middleware-labs-sandbox[bot]" <224139880+mw-middleware-labs-sandbox[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 05:34:42 +0000 Subject: [PATCH] Fix: Return HTTP 404 for missing users instead of HTTP 500 - Add 'abort' to Flask imports - Check if username exists in user_data before lookup - Return proper HTTP 404 with descriptive message for missing users - Remove unreachable error handling code This resolves the Python Backend Failure alert (Alert ID: 30146661) where KeyError exceptions were causing HTTP 500 responses for non-existent users (user6, user7), triggering error tracking alerts. Root cause: Improper error handling in user_profile() function Fix: Use abort(404) instead of raising KeyError for missing users --- flask/app.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flask/app.py b/flask/app.py index c30b439..e1bf8ec 100644 --- a/flask/app.py +++ b/flask/app.py @@ -7,7 +7,7 @@ ) ) -from flask import Flask, render_template, request, jsonify +from flask import Flask, render_template, request, jsonify, abort import logging import os from datetime import datetime @@ -60,10 +60,10 @@ def generate_exception(): @app.route('/user/') def user_profile(username): print(f"User profile requested for {username}") - test = user_data[username] - if not test: - raise - return jsonify({"message": f"Profile for {username}", "data": test}) + if username not in user_data: + abort(404, description=f"User '{username}' not found") + user = user_data[username] + return jsonify({"message": f"Profile for {username}", "data": user}) @app.route('/process', methods=['POST']) def process_user_data(): @@ -154,4 +154,4 @@ def user_stats(username): }) if __name__ == '__main__': - app.run('0.0.0.0', 8010) + app.run('0.0.0.0', 8010) \ No newline at end of file