UiPath Documentation
functions
latest
false
Functions user guide
  • Overview
    • About Functions
  • JavaScript functions
    • Getting started
    • Building JavaScript functions
    • HTTP triggers and routing
    • Function context
    • Accessing platform services
    • Testing and debugging
  • Python functions
  • Deploy and run

Testing and debugging

Run JavaScript functions locally, call them over HTTP, execute one as a job, and validate the packaged project before publishing.

Functions run locally before they are packaged, against the same runtime and the same routing the platform uses.

Serve and call

uip function serve
uip function serve

Starts a hot-reload server on port 7070; --port changes it. Every HTTP function is callable at its declared path, and the root URL lists the registered routes.

Call a served function with curl at its declared path:

curl -X POST http://localhost:7070/hello \
  -H "Content-Type: application/json" \
  -d '{"name":"Alice"}'
curl -X POST http://localhost:7070/hello \
  -H "Content-Type: application/json" \
  -d '{"name":"Alice"}'

serve also takes --runtime to choose the runtime, node or deno.

Run one as a job

uip function run --function process-order --input '{"orderId":"A-1"}'
uip function run --function process-order --input '{"orderId":"A-1"}'

run executes the function once the way the platform runs a job, then prints a JobResult carrying the status and the output arguments. It does not need serve and makes no HTTP request, so ctx.params and ctx.headers are empty — the same conditions a deployed job function sees. Use it to test a function that declares no method and path.

Pass --entrypoint instead of --function to point at a file directly. One of the two is required.

Reaching Orchestrator locally

ctx.robot is null in a local run, and ctx.platform is built from environment variables. Put them in a .env file at the project root:

UIPATH_ACCESS_TOKEN=<your-access-token>
UIPATH_BASE_URL=https://cloud.uipath.com
UIPATH_ORG_ID=<org id>
UIPATH_TENANT_ID=<tenant id>
UIPATH_ACCESS_TOKEN=<your-access-token>
UIPATH_BASE_URL=https://cloud.uipath.com
UIPATH_ORG_ID=<org id>
UIPATH_TENANT_ID=<tenant id>

serve loads that file automatically on both supported runtimes. Exporting the variables in your shell works too.

Validating the packaged project

serve --production and run --production reproduce a platform cold start: no hot reload, and the installed server runner is reused rather than rebuilt. Running the packed output this way surfaces the failures the platform would hit on deployment — most often a runtime dependency that was left in devDependencies. See the CLI reference for the full recipe.

Next steps

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated