Creating a task with an empty description explodes rather abruptly
- Dominant language
- Dart
- Stars
- 84
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
I accidentally created a task with no description. I just tapped the plus icon:

and then tapped the "enter" icon:

And this happened:
```
FormatException: Empty description will provoke a server error. (at character 1)
^
#0 validateTaskDescription (package:taskw/src/validate.dart:3)
#1 new Task._ (package:taskj/src/json/task.dart:40)
#2 new _$Task._ (package:taskj/src/json/task.g.dart:362)
#3 TaskBuilder.build (package:taskj/src/json/task.g.dart:624)
#4 new _$Task (package:taskj/src/json/task.g.dart:336)
#5 taskParser (package:taskw/src/task_parser.dart:76)
#6 _AddTaskBottomSheetState.submit (package:task/src/widgets/add_task_bottom_sheet.dart:34)
#7 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:989)
#8 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198)
#9 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:608)
#10 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:296)
#11 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:267)
#12 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157)
#13 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:443)
#14 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:419)
#15 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:322)
#16 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:374)
#17 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:338)
#18 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:296)
#19 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:279)
#20 _rootRunUnary (dart:async/zone.dart:1444)
#21 _CustomZone.runUnary (dart:async/zone.dart:1335)
#22 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244)
#23 _invoke1 (dart:ui/hooks.dart:169)
#24 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:293)
#25 _dispatchPointerDataPacket (dart:ui/hooks.dart:88)
```
While it's obviously ok that the app wouldn't want to create an "empty" task, a friendlier error message would probably be better.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with _AddTaskBottomSheetState.submit in task/src/widgets/add_task_bottom_sheet.dart, then inspect validateTaskDescription in taskw/src/validate.dart and the task parser path shown in the stack trace. Reproduce submission with an empty description and make the failure present a friendly message instead of an abrupt exception; verify that non-empty tasks still submit normally.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, flutter
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100