UiPath Documentation
functions
latest
false
  • Overview
    • About Functions
  • Python functions
    • Getting started
    • Building Python functions
    • Accessing platform services
    • Tracing and observability
    • Testing and debugging
  • Deploy and run

Functions user guide

Tracing and observability

The @traced decorator makes individual execution steps visible in job traces and Maestro dashboards. Use it to annotate the helper functions that do meaningful work, so you can see where time is spent and where a run failed.

from uipath.tracing import traced


@traced(name="fetch_document", run_type="uipath")
def fetch_document(document_id: str) -> bytes:
    # implementation
    ...


def main(input: Input) -> Output:  # do not trace the entry point
    content = fetch_document(input.document_id)
    return Output(result_id="123")
from uipath.tracing import traced


@traced(name="fetch_document", run_type="uipath")
def fetch_document(document_id: str) -> bytes:
    # implementation
    ...


def main(input: Input) -> Output:  # do not trace the entry point
    content = fetch_document(input.document_id)
    return Output(result_id="123")
Important:

Do not apply @traced to the entry-point function. The runtime already wraps the entire job in its own span; tracing the entry point produces a duplicate, nested span.

What gets captured

Each traced step records its name, run type, start and end times, and status. Traces are linked to the Orchestrator job so you can navigate from a Maestro process instance down to the individual function step that ran.

Guidance

  • Trace the steps that represent distinct units of work — an external call, an extraction, a transformation.
  • Use a clear, stable name per step so traces are easy to read across runs.
  • Keep run_type="uipath" for platform steps.

Next steps

  • What gets captured
  • Guidance
  • Next steps

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated