How to fix macOS Sierra language switching bug?

Solution 1:

Go to system preferences/Siri and turn off Siri and make sure that the keyboard shortcut is set to None, and then restart.

Solution 2:

Had this happening to me every once in a while. Console did emitted an error when I attempted to switch the keyboard layout:

TypingFocusDebug senderProcess is non-trustable, senderProcessPID is 6171 typingFocusProcessPID is 35651 -> msgID = -1

The senderProcessPID was /System/Library/PrivateFrameworks/LocalAuthenticationUI.framework/Versions/A/XPCServices/localAuthenticationRemoteService.xpc/Contents/MacOS/localAuthenticationRemoteService

Killing it did helped to get rid of the non-switching input source problem:

sudo killall -9 localAuthenticationRemoteService

Hope this helps others who are having the same issue.

Solution 3:

Had a similar problem with the variation that I needed to change focus of the window (deactivate and activate currently focused application window by using command+tab, very annoying).

I am extending the solution with Siri (which I am not certain about if that is really solving the problem but I don't use it anyway) with what has worked for me:

  1. Turn off Siri in System preferences (reboot as explained by Tom)
  2. Use method with Select the previous input source.
  3. Don't use Select next source in Input menu

The difference in how those two methods (2) and (3) are implemented causes only (2) to work properly, since it shows a menu popup where user can loop over languages. This results in missing defocus/focus step.

Hope that helps!