Skip to content

Commit 21bd7e2

Browse files
authored
Merge pull request #7038 from hotosm/feat/update-users-concurrently
Exception handling for users not found in osm and users deleted from osm
2 parents b3df7e0 + 5ff0720 commit 21bd7e2

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

scripts/commands/refresh_mapper_level.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from typing import List
88

99
from databases import Database
10-
from backend.services.users.user_service import UserService
10+
from backend.services.users.user_service import UserService, UserServiceError
1111
from backend.models.postgis.user import User
1212
from backend.config import settings
1313

@@ -77,6 +77,21 @@ async def process_user(
7777
)
7878
await asyncio.sleep(RETRY_DELAY)
7979
continue
80+
except UserServiceError as exc:
81+
# Non-retriable external API error from UserService (e.g. OSM returned 404/410)
82+
# 404 for user not found.
83+
# 410 for user deleted from osm. Gone error code.
84+
async with failed_lock:
85+
failed_users.append(user_record.id)
86+
logger.info(
87+
"OSM error for user %s — recorded in osm_failed_users: %s",
88+
user_record.id,
89+
exc,
90+
)
91+
logger.debug(
92+
"UserServiceError for user %s", user_record.id, exc_info=True
93+
)
94+
break
8095
except Exception:
8196
async with failed_lock:
8297
failed_users.append(user_record.id)

0 commit comments

Comments
 (0)