diff --git a/splunklib/searchcommands/external_search_command.py b/splunklib/searchcommands/external_search_command.py
index <HASH>..<HASH> 100644
--- a/splunklib/searchcommands/external_search_command.py
+++ b/splunklib/searchcommands/external_search_command.py
@@ -142,7 +142,9 @@ class ExternalSearchCommand(object):
             p.wait()
 
             logger.debug('finished command="%s", arguments=%s, pid=%d, returncode=%d', path, argv, p.pid, p.returncode)
-            sys.exit(p.returncode)
+
+            if p.returncode != 0:
+                sys.exit(p.returncode)
 
         @staticmethod
         def _search_path(executable, paths):
Resolved DVPL-<I>, Python SDK | Windows | ExternalSearchCommand._execute should not call sys.exit unless the return code from the external process it starts returns a non-zero code