diff --git a/flink-python/pyflink/fn_execution/beam/beam_boot.py b/flink-python/pyflink/fn_execution/beam/beam_boot.py
index <HASH>..<HASH> 100644
--- a/flink-python/pyflink/fn_execution/beam/beam_boot.py
+++ b/flink-python/pyflink/fn_execution/beam/beam_boot.py
@@ -86,7 +86,9 @@ if __name__ == "__main__":
                 worker_id=worker_id,
                 provision_endpoint=ApiServiceDescriptor(url=provision_endpoint),
                 params=params)
-            client.StartWorker(request)
+            response = client.StartWorker(request)
+            if response.error:
+                raise RuntimeError("Error starting worker: %s" % response.error)
     else:
         logging.info("Starting up Python harness in a standalone process.")
         metadata = [("worker_id", worker_id)]
[FLINK-<I>][python] Fix the issue that exceptions generated during startup are lost in Python loopback mode

This closes #<I>.