code: def test_serialize_deserialize_remote_function_error_with_traceback():
      s3_uri = random_s3_uri()
  
      class CustomError(Exception):
          ...
  
      def func_a():
          raise TypeError
  
      def func_b():
          try:
              func_a()
          except TypeError as first_exception:
              raise ServiceError("Some error") from first_exception
  
      try:
          func_b()
      except Exception as e:
          serialize_exception_to_s3(
              e,
              sagemaker_session=Mock(),
              s3_uri=s3_uri,
              s3_kms_key=KMS_KEY,
              hmac_key=HMAC_KEY,
          )
  
      with pytest.raises(ServiceError, match="Some error") as exc_info:
          raise deserialize_exception_from_s3(
              sagemaker_session=Mock(), s3_uri=s3_uri, hmac_key=HMAC_KEY
          )
      assert type(exc_info.value.__cause__) is TypeError
  
imports: from __future__ import absolute_import
  import random
  import string
  import pytest
  from mock import patch, Mock
  from sagemaker.experiments.run import Run
  from sagemaker.workflow.parameters import ParameterInteger
  from sagemaker.workflow.function_step import DelayedReturn
  from sagemaker.remote_function.core.serialization import serialize_func_to_s3, deserialize_func_from_s3, serialize_obj_to_s3, deserialize_obj_from_s3, serialize_exception_to_s3, deserialize_exception_from_s3
  from sagemaker.remote_function.errors import ServiceError, SerializationError, DeserializationError
  from tblib import pickling_support
label_desc: Use image node_id 24 for calling a global function with example usage: test_serialize_deserialize_remote_function_error_with_traceback() without return types