- Vue d'ensemble (Overview)
- Démarrer
- Concepts
- Utilisation de la UiPath CLI
- Guides pratiques
- Revenus CI/CD
- Référence de commande
- Vue d'ensemble (Overview)
- Codes de sortie
- Options globales
- agent codé uip
- encodeur UIP
- uip ancrage dans le contexte
- UiPath Docsai
- Fonction UiP
- garde-fous UiP
- configuration llm uip
- uip llm-passerelle
- Création uip maestro
- Registre Maestro uip
- uip model-hub
- Tâches (Jobs)
- Dossiers
- Processus
- ROI du processus
- Paquets
- Machines
- Utilisateurs
- Rôles
- Licences
- Flux
- Pièces jointes (Attachments)
- Sessions
- Calendriers
- magasins d'informations d’identification
- journaux-audit
- paramètres
- Actifs
- Compartiments
- Compartiment-fichiers
- Bibliothèques
- Files d'attente (Queues)
- ROI de la file d'attente
- éléments de la file d'attente
- Déclencheurs (Triggers)
- Webhooks
- Activités - Rechercher
- activités get-Default-xaml
- Analyser
- liste règles-analyseurs
- Construire
- Nettoyage
- Installation de entités data-fabrics
- liste des entités data-fabrics
- Diff de fichiers
- Get-Library-Object-Repository
- Récupérer le référentiel d'objets
- Init
- liste des instances
- Créer un package
- Vérification des paquets
- Installation des paquets
- Versions de paquets
- Publier
- Distant
- restore
- exécuter, déboguer et amp; Exécution
- paramètres
- Début de Studio
- Recherche de modèles
- entité ajoutée aux données de test
- Ajouter une file d'attente de données de test
- variation d'ajout de données de test
- TM
- UIA
- Valider
- exemples de workflow - Obtenir
- liste d'exemples de workflow
- tâches UIP
- pièce jointe
- Champ personnalisé
- Défauts (Defects)
- Exécutions
- exporter-tâches
- Migration
- Libellé Objet
- Créer un package
- scénarios-perf
- groupes-de-charge-scénarios-perf
- données d’exécution de perf-scenario
- rapport de scénarios de performances
- Projet
- autorisations-projet
- Invites
- Rapport
- Prérequis
- Résultat
- Exécuter
- Planifications (Schedules)
- Journaux de cas de test
- Cas de test
- Ensembles de tests
- Journal des étapes de test
- Utilisateur (User)
- Attendre
- Traçages UIP
- Commentaires sur les traces UIP
- Migration
- Référence et assistance
Codes de sortie
Quittez le contrat de code pour la UiPath CLI, couvrant cinq niveaux (0 à 4) et le code 130 pour l'annulation de l'utilisateur, avec des directives de script.
Chaque uip invocation se termine par un code de sortie numérique. Les scripts et les pipelines CI se ramifient sur ces codes pour distinguer le succès, une Error temporaire qui méritent d'être réessayées, un problème d'identifiants qui nécessite une attention humaine et une mauvaise utilisation de la ligne de commande.
Contrat
Le code de sortie est déterminé par le champ Result dans l'enveloppe de sortie de la commande. L'hôte mappe chaque valeur Result à un seul code de sortie:
| Code de sortie | Result valeur(s) | Signification |
|---|---|---|
| 0 | Success | La commande est terminée et son objectif a été atteint. |
| 1 | Failure, ConfigError | Échec générique ou problème de configuration que la CLI peut détecter avant d'atteindre le serveur (locataire manquant, fichier disque manquant, etc.). |
| 2 | AuthenticationError | La session n’est pas authentifiée, le jeton a expiré ou Orchestrator a rejeté les informations d’identification (401/403). |
| 3 | ValidationError | La commande a été invoquée avec une entrée non valide — indicateur inconnu, indicateur avec une valeur incorrecte, indicateurs mutuellement exclusifs, --output-filter incorrect, etc. |
| 4 | TimeoutError | A long-running operation exceeded its deadline. Emitters include uip tm run when its --timeout elapses and uip tm testsets clone when the copy outlasts its wait (both envelopes read Result: "TimeoutError"), and uip tm perf-scenario execute --wait when its --timeout-sec elapses (the envelope reads Result: "Failure"). |
A few uip tm commands set the exit code independently of Result, so branch on the exit code rather than on Result for them:
- On timeout,
uip tm perf-scenario execute --waitexits4, anduip tm waitanduip tm testsets run --waitexit2; all three reportResult: "Failure". - A
uip tmcommand that finds no valid login before its first request reportsResult: "Failure"and exits1. A 401 or 403 that Test Manager returns later reportsAuthenticationErrorand exits2.
En outre :
| Code de sortie | Source | Signification |
|---|---|---|
| 130 | Convention Shell (128 + Signint) | L’utilisateur a annulé une invite interactive (Ctrl+C pendant uip login, uip skills install, uip completion, etc.). |
Aucun autre code de sortie n'est émis par la UiPath CLI. Une valeur en dehors de ce tableau indique une fin normale (crash non détecté, processus enfant en run- été ou le shell signalant un signal) et doit faire l’objet d’un examen et non d’une correspondance de modèle.
Stabilité
0,1,2,3sont stables dans une version majeure. Une commande qui se termine avec3(validation) pour une entrée donnée continuera à se fermer avec3entre les sauts Minor et PATCH.4means timeout. A few long-running commands emit it today, includinguip tm run,uip tm testsets clone, anduip tm perf-scenario execute --wait; other long-running commands may start doing so in a MINOR release, so scripts should already handle4as "timeout".- De nouveaux codes peuvent être ajoutés dans une version majeure, avec un avis préalable dans les notes de version. L’ensemble actuel couvre chaque mode de défaillance requis par UiPath CLI 1.x.
Voir Contrôle des versions et stabilité pour le contrat du serveur plus large.
Lecture du code de sortie dans les scripts
bash/sh/zsh
uip or folders list
case $? in
0) echo "ok" ;;
1) echo "command failed" ;;
2) echo "not authenticated — run uip login" ;;
3) echo "bad input — check flags" ;;
4) echo "timed out" ;;
130) echo "cancelled by user" ;;
*) echo "unexpected exit: $?" ;;
esac
uip or folders list
case $? in
0) echo "ok" ;;
1) echo "command failed" ;;
2) echo "not authenticated — run uip login" ;;
3) echo "bad input — check flags" ;;
4) echo "timed out" ;;
130) echo "cancelled by user" ;;
*) echo "unexpected exit: $?" ;;
esac
set -e (ou set -o errexit) abandonne le script sur n'importe quelle sortie non nulle. Il s'agit de la valeur par défaut pour CI; combinez-le avec trap ou avec la gestion par commande lorsque vous devez faire la distinction entre les codes:
set -euo pipefail
if ! uip or folders list --output json > folders.json; then
case $? in
2) uip login ; uip or folders list --output json > folders.json ;;
*) exit $? ;;
esac
fi
set -euo pipefail
if ! uip or folders list --output json > folders.json; then
case $? in
2) uip login ; uip or folders list --output json > folders.json ;;
*) exit $? ;;
esac
fi
PowerShell
uip or folders list
switch ($LASTEXITCODE) {
0 { Write-Host "ok" }
1 { Write-Host "command failed" }
2 { Write-Host "not authenticated" }
3 { Write-Host "bad input" }
4 { Write-Host "timed out" }
130 { Write-Host "cancelled" }
default { Write-Host "unexpected exit: $LASTEXITCODE" }
}
uip or folders list
switch ($LASTEXITCODE) {
0 { Write-Host "ok" }
1 { Write-Host "command failed" }
2 { Write-Host "not authenticated" }
3 { Write-Host "bad input" }
4 { Write-Host "timed out" }
130 { Write-Host "cancelled" }
default { Write-Host "unexpected exit: $LASTEXITCODE" }
}
Actions de GitHub
Toute sortie non-zéro dans une étape run: échoue la tâche par défaut. Pour ramifier sur des codes spécifiques, capturez le code explicitement:
- name: Query Orchestrator
id: folders
run: |
uip or folders list --output json > folders.json
echo "exit_code=$?" >> "$GITHUB_OUTPUT"
continue-on-error: true
- name: Re-authenticate if expired
if: steps.folders.outputs.exit_code == '2'
run: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET --tenant "$TENANT"
env:
UIPATH_CLIENT_ID: ${{ secrets.UIPATH_CLIENT_ID }}
UIPATH_CLIENT_SECRET: ${{ secrets.UIPATH_CLIENT_SECRET }}
TENANT: ${{ vars.UIPATH_TENANT }}
- name: Query Orchestrator
id: folders
run: |
uip or folders list --output json > folders.json
echo "exit_code=$?" >> "$GITHUB_OUTPUT"
continue-on-error: true
- name: Re-authenticate if expired
if: steps.folders.outputs.exit_code == '2'
run: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET --tenant "$TENANT"
env:
UIPATH_CLIENT_ID: ${{ secrets.UIPATH_CLIENT_ID }}
UIPATH_CLIENT_SECRET: ${{ secrets.UIPATH_CLIENT_SECRET }}
TENANT: ${{ vars.UIPATH_TENANT }}
Faire correspondre les codes de sortie à l'enveloppe JSON
Lorsque --output json est en vigueur (par défaut), l'enveloppe contient les mêmes informations que le code de sortie, plus un message lisible par un humain:
{
"Result": "ValidationError",
"Message": "Unknown option '--folder-pth'. Did you mean '--folder-path'?",
"Instructions": "Run 'uip or folders list --help' to see valid options."
}
{
"Result": "ValidationError",
"Message": "Unknown option '--folder-pth'. Did you mean '--folder-path'?",
"Instructions": "Run 'uip or folders list --help' to see valid options."
}
Un pipeline peut se ramifier sur $? pour des décisions rapides (réessayer sur 2, abandonner sur 3) et analyser l'enveloppe pour l'image complète de l'erreur (faire apparaître le Message dans un webhook Slack, ticketer le Instructions avec l'étape défaillante, etc.).
Chaque enveloppe d'échec comporte également ErrorCode et Retry — voir Formats de sortie — l'enveloppe. Il s'agit d'un signal plus précis que le code de sortie seul: plusieurs valeurs ErrorCode distinctes (par exemple not_found et rate_limited) peuvent correspondre au même code de sortie 1, mais seule l'une d'entre elles convient de réessayer . Voir Modèles de script — se ramification sur ErrorCode et Retry.
Sémantique spécifique à la commande
Les codes de sortie sont des codes de statut, et non des codes de réussite. Une commande qui signale Success avec une charge utile Data indiquant « aucun résultat trouvé» quitte toujours 0. Par exemple, uip or folders list --all --name DoesNotExist renvoie {"Data": [], …} et quitte 0 — car la requête de liste a réussi; l'absence de correspondances est un résultat valide, et non un échec.
Lorsqu'une commande doit distinguer « l'opération réussie» de « le résultat du domaine est positif», elle l'indique dans sa page de référence:
uip tm testsets run— quitte toujours0une fois qu'Orchestrator a accepté la demande d'exécution de test et renvoie le fichierExecutionId. Le score de réussite/d’échec provient d’une chaîneuip tm wait+uip tm report getdistincte; branche surData.Faileddans la sortie du rapport.uip tm waitenvoie le code de sortie2au moment de l’expiration (une réutilisation spécifique à un domaine de l’emplacement d’erreur d’authentification — notée dans les exécutions uip tm wait et uip tm).uip tm perf-scenario execute --wait— quitte4lorsque--timeout-secs'étend avant la fin de l'exécution. L'exécution se poursuit; Vérifiez-le avecperf-scenario results get.uip or jobs start --wait-for-completion— se termine non-zéro lorsque la tâche atteint un état terminalFaultedouStopped. Sans--wait-for-completion, la commande se termine0dès qu'Orchestrator accepte la requête, quel que soit le résultat ultérieur de la tâche.
Consultez la page de référence pour toute commande où la sémantique de « réussite» est ambiguë.
Voir également
- Options globales — les indicateurs
--output,--output-filter,--log-levelet--log-file. - Modèles de script — réessais, interrogation, pipelines idempotents.
- Formats de sortie — la forme de l'enveloppe qui reflète le code de sortie.
- Contrôle des versions et stabilité - façon dont le contrat de code de sortie évolue entre les sauts du serveur.