Skip to content

Commit 073a9b1

Browse files
Fury3KMasuRii
authored andcommitted
fix(geocoding): resolve Nominatim 429 rate limit errors
- Add RateLimitFailure to failures.dart for explicit 429 handling - Increase map picker reverse-geocode debounce from 400ms to 1100ms to respect Nominatim's 1 request/second policy
1 parent 317f618 commit 073a9b1

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

lib/src/core/errors/failures.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,10 @@ class LocationPermissionDeniedForeverFailure extends Failure {
4141
'Location permission permanently denied. Please enable it in app settings.',
4242
]);
4343
}
44+
45+
class RateLimitFailure extends Failure {
46+
const RateLimitFailure([
47+
super.message =
48+
'Too many requests. Please wait a moment before trying again.',
49+
]);
50+
}

lib/src/presentation/screens/map_picker_screen.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,9 @@ class _MapPickerScreenState extends State<MapPickerScreen>
5252
/// during rapid map movements
5353
Timer? _geocodeDebounceTimer;
5454

55-
/// Debounce duration for reverse geocoding (400ms)
56-
static const Duration _geocodeDebounceDuration = Duration(milliseconds: 400);
55+
/// Debounce duration for reverse geocoding.
56+
/// Kept above 1100ms to respect Nominatim's 1 request/second policy.
57+
static const Duration _geocodeDebounceDuration = Duration(milliseconds: 1100);
5758

5859
// Animation controller for pin bounce effect
5960
late final AnimationController _pinAnimationController;

0 commit comments

Comments
 (0)