title: google colab UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfa in position 21: invalid start byte
body: <p>I'm running git commands from with a Google Colab (I mounted a google drive containing a git repo into the colab). All commands worked without a problem, and suddenly some commands stopped working.</p>
  <p>These commands still work in my Colab:</p>
  <pre><code>!git branch
  !git stash pop
  !git log -1
  </code></pre>
  <p>But these commands produce an error in my Colab that wasn't occurring before:</p>
  <pre><code>!git status
  !git checkout master
  !git pull origin master
  </code></pre>
  <p>Output of</p>
  <pre><code>!git stash pop 
  !git status
  </code></pre>
  <pre><code>No stash entries found.
  ---------------------------------------------------------------------------
  UnicodeDecodeError                        Traceback (most recent call last)
  &lt;ipython-input-27-7155109ce28e&gt; in &lt;module&gt;()
       12 get_ipython().system('git stash pop')
       13 # !git branch
  ---&gt; 14 get_ipython().system('git status')
       15 # !git pull origin master
       16 # if os.path.isdir(WORKING_DIR):
  
  5 frames
  /usr/local/lib/python3.6/dist-packages/google/colab/_shell.py in system(self, *args, **kwargs)
      100       kwargs.update({'also_return_output': True})
      101 
  --&gt; 102     output = _system_commands._system_compat(self, *args, **kwargs)  # pylint:disable=protected-access
      103 
      104     if pip_warn:
  
  /usr/local/lib/python3.6/dist-packages/google/colab/_system_commands.py in _system_compat(shell, cmd, also_return_output)
      438   # stack.
      439   result = _run_command(
  --&gt; 440       shell.var_expand(cmd, depth=2), clear_streamed_output=False)
      441   shell.user_ns['_exit_code'] = result.returncode
      442   if -result.returncode in _INTERRUPTED_SIGNALS:
  
  /usr/local/lib/python3.6/dist-packages/google/colab/_system_commands.py in _run_command(cmd, clear_streamed_output)
      193       os.close(child_pty)
      194 
  --&gt; 195       return _monitor_process(parent_pty, epoll, p, cmd, update_stdin_widget)
      196   finally:
      197     epoll.close()
  
  /usr/local/lib/python3.6/dist-packages/google/colab/_system_commands.py in _monitor_process(parent_pty, epoll, p, cmd, update_stdin_widget)
      220   while True:
      221     try:
  --&gt; 222       result = _poll_process(parent_pty, epoll, p, cmd, decoder, state)
      223       if result is not None:
      224         return result
  
  /usr/local/lib/python3.6/dist-packages/google/colab/_system_commands.py in _poll_process(parent_pty, epoll, p, cmd, decoder, state)
      273       output_available = True
      274       raw_contents = os.read(parent_pty, _PTY_READ_MAX_BYTES_FOR_TEST)
  --&gt; 275       decoded_contents = decoder.decode(raw_contents)
      276 
      277       sys.stdout.write(decoded_contents)
  
  /usr/lib/python3.6/codecs.py in decode(self, input, final)
      319         # decode input (taking the buffer into account)
      320         data = self.buffer + input
  --&gt; 321         (result, consumed) = self._buffer_decode(data, self.errors, final)
      322         # keep undecoded input until the next call
      323         self.buffer = data[consumed:]
  
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfa in position 21: invalid start byte
  </code></pre>
  <p>As you can see, <code>!git stash pop</code> works but not <code>!git status</code>. Note that all git commands worked fine in my Colab until recently. It seems like something happened in the Colab that made it reject some git commands.</p>
  <p>Yes, I've tried creating a new Colab and rewriting the offending the offending git commands there, and the error is still present. I've also tried deleting every character and rewrote them from scratch (in case there were hidden characters causing the issue).</p>
  <p>On my local machine, the commands work fine and don't print any weird characters:</p>
  <pre><code>$ git status
  On branch tf2
  nothing to commit, working tree clean
  </code></pre>
  <p>Any thoughts?</p>