diff --git a/cbuildbot/commands_unittest.py b/cbuildbot/commands_unittest.py
index fbf14a6..01332b5 100644
--- a/cbuildbot/commands_unittest.py
+++ b/cbuildbot/commands_unittest.py
@@ -422,7 +422,7 @@
       cmd_result = self.RunHWTestSuite()
     self.assertEqual(cmd_result, (None, None))
     self.assertCommandCalled(self.create_cmd, capture_output=True,
-                             combine_stdout_stderr=True)
+                             combine_stdout_stderr=True, env=mock.ANY)
     self.assertIn(self.JOB_ID_OUTPUT, '\n'.join(output.GetStdoutLines()))
 
   def testRunHWTestSuiteMaximal(self):
@@ -458,9 +458,9 @@
                                        subsystems=self._subsystems)
     self.assertEqual(cmd_result, (None, None))
     self.assertCommandCalled(self.create_cmd, capture_output=True,
-                             combine_stdout_stderr=True)
+                             combine_stdout_stderr=True, env=mock.ANY)
     self.assertCommandCalled(self.wait_cmd, capture_output=True,
-                             combine_stdout_stderr=True)
+                             combine_stdout_stderr=True, env=mock.ANY)
     self.assertIn(self.WAIT_OUTPUT, '\n'.join(output.GetStdoutLines()))
     self.assertIn(self.JOB_ID_OUTPUT, '\n'.join(output.GetStdoutLines()))
 
@@ -509,7 +509,7 @@
       cmd_result = self.RunHWTestSuite(wait_for_results=True)
       self.assertIsInstance(cmd_result.to_raise, failures_lib.TestLabFailure)
       self.assertCommandCalled(self.json_dump_cmd, capture_output=True,
-                               combine_stdout_stderr=True)
+                               combine_stdout_stderr=True, env=mock.ANY)
 
   def testRunHWTestBoardNotAvailable(self):
     """Test RunHWTestSuite when BOARD_NOT_AVAILABLE is returned."""
@@ -563,9 +563,9 @@
     with self.OutputCapturer() as output:
       self.RunHWTestSuite(wait_for_results=self._wait_for_results)
       self.assertCommandCalled(self.create_cmd, capture_output=True,
-                               combine_stdout_stderr=True)
+                               combine_stdout_stderr=True, env=mock.ANY)
       self.assertCommandCalled(self.wait_cmd, capture_output=True,
-                               combine_stdout_stderr=True)
+                               combine_stdout_stderr=True, env=mock.ANY)
       self.assertIn(self.WAIT_RETRY_OUTPUT.strip(),
                     '\n'.join(output.GetStdoutLines()))
       self.assertIn(self.WAIT_OUTPUT, '\n'.join(output.GetStdoutLines()))
@@ -612,9 +612,9 @@
       with self.OutputCapturer() as output:
         self.RunHWTestSuite(wait_for_results=self._wait_for_results)
         self.assertCommandCalled(self.create_cmd, capture_output=True,
-                                 combine_stdout_stderr=True)
+                                 combine_stdout_stderr=True, env=mock.ANY)
         self.assertCommandCalled(self.json_dump_cmd, capture_output=True,
-                                 combine_stdout_stderr=True)
+                                 combine_stdout_stderr=True, env=mock.ANY)
         self.assertIn(self.JOB_ID_OUTPUT, '\n'.join(output.GetStdoutLines()))
         self.assertIn(self.JSON_OUTPUT, '\n'.join(output.GetStdoutLines()))
 
diff --git a/cbuildbot/swarming_lib.py b/cbuildbot/swarming_lib.py
index 76f098b..324ea2b 100644
--- a/cbuildbot/swarming_lib.py
+++ b/cbuildbot/swarming_lib.py
@@ -90,6 +90,10 @@
     swarming_cmd += ['--']
     swarming_cmd += cmd
 
+    # Ensure SWARMING_TASK_ID is unset in env. See crbug.com/821227.
+    kwargs.setdefault('env', os.environ.copy())
+    kwargs['env'].pop('SWARMING_TASK_ID', None)
+
     try:
       result = None
       while True:
diff --git a/cbuildbot/swarming_lib_unittest b/cbuildbot/swarming_lib_unittest
new file mode 120000
index 0000000..72196ce
--- /dev/null
+++ b/cbuildbot/swarming_lib_unittest
@@ -0,0 +1 @@
+../scripts/wrapper.py
\ No newline at end of file
diff --git a/cbuildbot/swarming_lib_unittest.py b/cbuildbot/swarming_lib_unittest.py
new file mode 100644
index 0000000..bd037f2
--- /dev/null
+++ b/cbuildbot/swarming_lib_unittest.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Copyright 2018 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Unit tests for swarming_lib module."""
+
+from __future__ import print_function
+
+from chromite.cbuildbot import swarming_lib
+from chromite.lib import cros_build_lib_unittest
+
+
+class SwarmingLibTest(cros_build_lib_unittest.RunCommandTestCase):
+  """Unit test of swarming_lib module."""
+
+  def testEnv(self):
+    """Validate that 'SWARMING_TASK_ID' is removed from swarming cmds."""
+    swarming_lib.RunSwarmingCommand(['cmd'], 'test-server')
+    swarming_lib.RunSwarmingCommand(['cmd'], 'test-server',
+                                    env={'SWARMING_TASK_ID': 'foo'})
+
+    for _, kwargs in self.rc.call_args_list:
+      self.assertIn('env', kwargs)
+      self.assertNotIn('SWARMING_TASK_ID', kwargs['env'])
