code: def _error_message(provider_summary: ProviderTaskSummary):
      if provider_summary.error_message:
          return provider_summary.error_message
      else:
          if provider_summary.status == "TIMED_OUT":
              return bundle.get("search_timed_out")
          elif provider_summary.status == "EMPTY_INTERSECTION":
              return "Empty intersection"
          else:
              return bundle.get("search_other_error")
  
imports: import tempfile
  import time
  from functools import lru_cache
  from typing import Dict, List, Optional
  import pandas
  from upgini import dataset
  from upgini.http import LoggerFactory, ProviderTaskSummary, SearchProgress, SearchTaskSummary, get_rest_client, is_demo_api_key
  from upgini.metadata import SYSTEM_RECORD_ID, FeaturesMetadataV2, FileMetadata, GeneratedFeatureMetadata, ModelTaskType, ProviderTaskMetadataV2, RuntimeParameters
  from upgini.resource_bundle import bundle
  from upgini.spinner import Spinner
label_desc: Use image node_id 10 for calling the SearchTask obj's underlying member method code with example usage: obj._error_message(provider_summary) and returns: provider_summary, bundle, str, bundle