From f816adf12fb8bcdb195ab16561087155a7e506a8 Mon Sep 17 00:00:00 2001 From: Daniel Ursache Dogariu Date: Thu, 2 Apr 2026 22:47:50 +0300 Subject: [PATCH] Improve connection error handling --- backend/donations/management/commands/check_ngos.py | 2 +- backend/donations/workers/check_organization.py | 2 +- backend/donations/workers/update_organization.py | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/backend/donations/management/commands/check_ngos.py b/backend/donations/management/commands/check_ngos.py index 12ba5d0e..d9fa6dd2 100644 --- a/backend/donations/management/commands/check_ngos.py +++ b/backend/donations/management/commands/check_ngos.py @@ -7,7 +7,7 @@ from django.core.management import BaseCommand from django.db.models import Q from django.utils import timezone -from requests.exceptions import Timeout +from requests.exceptions import ConnectionError, Timeout from donations.models.ngos import Ngo from donations.workers.check_organization import cult_registry_check_organizations diff --git a/backend/donations/workers/check_organization.py b/backend/donations/workers/check_organization.py index ed4206d6..d64e79ce 100644 --- a/backend/donations/workers/check_organization.py +++ b/backend/donations/workers/check_organization.py @@ -5,7 +5,7 @@ from django.conf import settings from django.utils import timezone from django_q.tasks import async_task -from requests.exceptions import Timeout +from requests.exceptions import ConnectionError, Timeout from donations.models.ngos import Ngo from utils.helper_logging import setup_logger diff --git a/backend/donations/workers/update_organization.py b/backend/donations/workers/update_organization.py index 6240b22b..6ab34362 100644 --- a/backend/donations/workers/update_organization.py +++ b/backend/donations/workers/update_organization.py @@ -16,7 +16,7 @@ from ngohub.models.organization import Organization, OrganizationGeneral from pycognito import Cognito from requests import Response -from requests.exceptions import Timeout +from requests.exceptions import ConnectionError, Timeout from donations.common.validation.validate_slug import NgoSlugValidator from donations.models.common import CommonFilenameCacheModel @@ -62,17 +62,21 @@ def _copy_file_to_object_with_filename_cache( return None failed = False + error_code = "" try: r: Response = requests.get(signed_file_url, timeout=20) except Timeout: failed = True - r = None + error_code = "Connection Timeout" + except ConnectionError: + failed = True + error_code = "Connection Error" else: if r.status_code != requests.codes.ok: + error_code = r.status_code failed = True if failed: - error_code = r.status_code if r else "TIMEOUT" logger.info("%s file request status = %s", attribute_name.upper(), error_code) error_message = f"ERROR: Could not download {attribute_name} file from NGO Hub, error status {error_code}." logger.warning(error_message)