I encountered an error when calling chatController.dispose as the example code. Error Message: A ScrollController was used after being disposed. Once you have called dispose() on a ScrollController, it can no longer be used ` void dispose() { // ChatController should be disposed to avoid memory leaks _chatController.dispose(); <-- here super.dispose(); } ` Because the ChatController and ChatListWidget call scrollController.dispose() twice time.