Skip to content

DateException: Jalali day is out of valid range on _isCurrentDateValid() function #103

@alibt

Description

@alibt

We are encountering this exception in our Sentry logs.
After investigating both the Jalali calendar and this package, it seems the issue occurs when trying to create a date like the 31st day of a 30-day month during scrolling — for example, 31st of Azar.

Unfortunately, we don't have the exact user scenario that triggers this, but it happens with a noticeable frequency.

Suggestion:
I recommend wrapping the body of the _isCurrentDateValid function with a try-catch block and returning false if an exception occurs.

I will create a PR soon to address this issue.

This is the trace :
#0 _Algo.createFromYearMonthDay (package:shamsi_date/src/jalali/jalali_calculation.dart:228)
#1 new Jalali (package:shamsi_date/src/jalali/jalali_date.dart:126)
#2 _CupertinoDatePickerDateState._isCurrentDateValid (package:persian_datetime_picker/src/cupertino/date_picker.dart:1515)
#3 _CupertinoDatePickerDateState._buildMonthPicker. (package:persian_datetime_picker/src/cupertino/date_picker.dart:1428)
#4 _CupertinoPickerState._handleSelectedItemChanged (package:flutter/src/cupertino/picker.dart:266)
#5 _ListWheelScrollViewState._handleScrollNotification (package:flutter/src/widgets/list_wheel_scroll_view.dart:763)
#6 _NotificationElement.onNotification (package:flutter/src/widgets/notification_listener.dart:138)
#7 _NotificationNode.dispatchNotification (package:flutter/src/widgets/framework.dart:3403)
#8 _NotificationNode.dispatchNotification (package:flutter/src/widgets/framework.dart:3406)
#9 _NotificationNode.dispatchNotification (package:flutter/src/widgets/framework.dart:3406)
#10 Element.dispatchNotification (package:flutter/src/widgets/framework.dart:5089)
#11 Notification.dispatch (package:flutter/src/widgets/notification_listener.dart:68)
#12 DragScrollActivity.dispatchScrollUpdateNotification (package:flutter/src/widgets/scroll_activity.dart:507)
#13 ScrollPosition.didUpdateScrollPositionBy (package:flutter/src/widgets/scroll_position.dart:1043)
#14 ScrollPosition.setPixels (package:flutter/src/widgets/scroll_position.dart:390)
#15 ScrollPositionWithSingleContext.setPixels (package:flutter/src/widgets/scroll_position_with_single_context.dart:87)
#16 ScrollPositionWithSingleContext.applyUserOffset (package:flutter/src/widgets/scroll_position_with_single_context.dart:131)
#17 ScrollDragController.update (package:flutter/src/widgets/scroll_activity.dart:422)
#18 ScrollableState._handleDragUpdate (package:flutter/src/widgets/scrollable.dart:858)
#19 DragGestureRecognizer._checkUpdate. (package:flutter/src/gestures/monodrag.dart:837)
#20 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:351)
#21 DragGestureRecognizer._checkUpdate (package:flutter/src/gestures/monodrag.dart:837)
#22 DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:683)
#23 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:98)
#24 PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:143)
#25 _LinkedHashMapMixin.forEach (dart:_compact_hash:726)
#26 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:141)
#27 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:127)
#28 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:502)
#29 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:482)
#30 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:457)
#31 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:427)
#32 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:390)
#33 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:337)
#34 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:306)
#35 _invoke1 (dart:ui/hooks.dart:328)
#36 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:450)
#37 _dispatchPointerDataPacket (dart:ui/hooks.dart:262)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions