Skip to content

Commit 4ef1463

Browse files
refactor: handle delete photo errors directly without exceptions
- Replaced exception raising in delete photo result handling with direct error handling - Session errors during delete now trigger retry via needs_retry flag - 500 errors return error code 1 (important for delete operations) - Service unavailable returns error code 1 - Other API errors are logged but continue processing - All tests pass, mypy strict mode passes
1 parent 3906695 commit 4ef1463

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

src/icloudpd/base.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1479,15 +1479,27 @@ def should_break(counter: Counter) -> bool:
14791479
case DeletePhotoSuccess():
14801480
pass # Success, continue
14811481
case Response2SARequired(account_name):
1482-
raise PyiCloud2SARequiredException(account_name)
1482+
return Response2SARequired(account_name)
14831483
case ResponseServiceNotActivated(reason, code):
1484-
raise PyiCloudServiceNotActivatedException(
1485-
reason, code
1486-
)
1484+
return ResponseServiceNotActivated(reason, code)
14871485
case ResponseAPIError(reason, code):
1488-
raise PyiCloudAPIResponseException(reason, code)
1486+
# Check if it's a session error that requires re-authentication
1487+
if "Invalid global session" in reason:
1488+
logger.info(f"{reason} ({code})")
1489+
dump_responses(logger.debug, captured_responses)
1490+
needs_retry = True
1491+
break
1492+
# 500 errors should cause exit for delete operations
1493+
if code == "500":
1494+
logger.info(f"{reason} ({code})")
1495+
dump_responses(logger.debug, captured_responses)
1496+
return 1
1497+
# Log other API errors but continue processing
1498+
logger.error("%s (%s)", reason, code)
14891499
case ResponseServiceUnavailable(reason):
1490-
raise PyiCloudServiceUnavailableException(reason)
1500+
logger.info(reason)
1501+
dump_responses(logger.debug, captured_responses)
1502+
return 1
14911503

14921504
# retrier(delete_local, error_handler)
14931505
photo_album.increment_offset(-1)

0 commit comments

Comments
 (0)