You invoke the debounce() function in the createTextChangeObservable(). By default, it operates on the computation thread. Thatβs why you need to explicitly define the execution thread as main, otherwise, youβll get CalledFromWrongThreadException, as you can access Android views from the main thread only